CodeChef : January Challenge 2017 – Cats and Dogs

By | January 8, 2017
Cats and Dogs

Source: CodeChef

Chef is a farmer and a pet lover. He has a lot of his favorite pets cats and dogs in the barn. He does not know their exact count. But he knows that there are C cats and D dogs in the barn. Also, one day went to field and found that there were L legs of the animals touching the ground. Chef knows that cats love to ride on the dogs. So, they might ride on the dogs, and their legs won’t touch the ground and Chef would miss counting their legs. Chef’s dogs are strong enough to ride at max two cats on their back.

It was a cold foggy morning, when Chef did this counting. So he is now wondering whether he counted the legs properly or not. Specifically, he is wondering is there a some possibility of his counting being correct. Please help Chef in finding it.


First line of the input contains an integer T denoting number of test cases. T test cases follow.

The only line of each test case contains three space separated integers C, D, L denoting number of the cats, number of the dogs and number of legs of animals counted by Chef, respectively.


For each test case, output a single line containing a string “yes” or “no” (both without quotes) according to the situation.


  • 1 ≤ T ≤ 105
  • 0 ≤ C, D, L ≤ 109


Subtask #1 (20 points)

  • 1 ≤ T ≤ 104
  • 0 ≤ C, D ≤ 102

Subtask #2 (30 points)

  • 1 ≤ T ≤ 105
  • 0 ≤ C, D ≤ 103

Subtask #3 (50 points)

  • Original constraints


1 1 8  1 1 4   1 1 2



Example 1. There is one cat and one dog. The number of legs of these animals on the ground are 8, it can be possible when both cat and dog are standing on the ground.

Example 2. There is one cat and one dog. The number of legs of these animals on the ground are 4, it can be possible if the cat will ride on the dog, so its legs won’t be counted by Chef, only the dog’s legs will be counted.

Example 3. There is one cat and one dog. The number of legs of these animals are 2, it can not be true at all, Chef might have made some mistake. Hence answer is “no”.


Working on the logic. Current logic is not working on submission.
If any suggestions, please comment.

package januaryChallenge2017;

import java.util.Scanner;

public class CatsAndDogs {

	public static void main(String[] args) {

		Scanner scan = new Scanner(;
		int t = scan.nextInt();

		for (int i = 0; i < t; i++) {
			int c = scan.nextInt();
			int d = scan.nextInt();
			int l = scan.nextInt();
			boolean validCount=false;
			if (l % 4 == 0) {
				int cat_capacity = d * 2;
				int dog_legs = d*4;

				if (c <= d*2) {
					if (l >= dog_legs && l <= ((c * 4) + dog_legs))

				} else {
					int left_cats = c - cat_capacity;
					if (l >= (dog_legs + (left_cats * 4)) && l <= (dog_legs + c*4))