# Cats and a Mouse | HackerRank Solution

Hello coders, today we are going to solve Cats and a Mouse HackerRank Solution which is a Part of HackerRank Algorithms Series.

Two cats and a mouse are at various positions on a line. You will be given their starting positions. Your task is to determine which cat will reach the mouse first, assuming the mouse does not move and the cats travel at equal speed. If the cats arrive at the same time, the mouse will be allowed to move and it will escape while they fight.

You are givenÂ qÂ queries in the form ofÂ x,Â y, andÂ zÂ representing the respective positions for catsÂ AÂ andÂ B, and for mouseÂ C. Complete the functionÂ catAndMouseÂ to return the appropriate answer to each query, which will be printed on a new line.

• If catÂ AÂ catches the mouse first, printÂ `Cat A`.
• If catÂ BÂ catches the mouse first, printÂ `Cat B`.
• If both cats reach the mouse at the same time, printÂ `Mouse C`Â as the two cats fight and mouse escapes.

Example

x =2
y = 5
z = 4
The cats are at positionsÂ 2Â (Cat A) andÂ 5Â (Cat B), and the mouse is at positionÂ 4. Cat B, at positionÂ 5Â will arrive first since it is onlyÂ 1Â unit away while the other isÂ 2Â units away. Return ‘Cat B’.

Function Description

Complete the catAndMouse function in the editor below.

catAndMouse has the following parameter(s):

• int x: CatÂ A‘s position
• int y: CatÂ B‘s position
• int z: MouseÂ C‘s position

Returns

• string:Â Either ‘Cat A’, ‘Cat B’, or ‘Mouse C’

## Input Format

The first line contains a single integer,Â q, denoting the number of queries.
Each of theÂ qÂ subsequent lines contains three space-separated integers describing the respective values ofÂ xÂ (catÂ A‘s location),Â yÂ (catÂ B‘s location), andÂ zÂ (mouseÂ C‘s location).

## Constraints

• 1 <= q <= 100
• 1 <= x, y, z <= 100

Sample Input 0

``````2
1 2 3
1 3 2``````

Sample Output 0

``````Cat B
Mouse C``````

Explanation 0

Query 0:Â The positions of the cats and mouse are shown below:Â
CatÂ BÂ will catch the mouse first, so we printÂ `Cat B`Â on a new line.

Query 1: In this query, catsÂ AÂ andÂ BÂ reach mouseÂ CÂ at the exact same time:Â
Because the mouse escapes, we printÂ `Mouse C`Â on a new line.

## Solution – Cats and a Mouse

### C++

```#include <bits/stdc++.h>

using namespace std;

int main()
{
int Q;
scanf("%d", &Q);
while(Q--)
{
int x, y, z;
scanf("%d%d%d", &x, &y, &z);
x=abs(x-z);
y=abs(y-z);
if(x==y)
printf("Mouse C\n");
else if(x<y)
printf("Cat A\n");
else
printf("Cat B\n");
}
return 0;
}```

### Python

```import sys

q = int(input().strip())
for a0 in range(q):
x,y,z = input().strip().split(' ')
x,y,z = [int(x),int(y),int(z)]

if abs(x - z) < abs(y - z):
print('Cat A')
elif abs(x - z) > abs(y - z):
print('Cat B')
else:
print('Mouse C')```

### Java

```import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {

public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int q = in.nextInt();
for(int a0 = 0; a0 < q; a0++){
int x = in.nextInt();
int y = in.nextInt();
int z = in.nextInt();

int dist = Math.abs(x-z);
int dist2 = Math.abs(y-z);
if (dist < dist2) System.out.println("Cat A");
else if (dist > dist2) System.out.println("Cat B");
else System.out.println("Mouse C");
}
}
}
```

Disclaimer: The above Problem (Cats and a Mouse) is generated by Hacker Rank but the Solution is Provided by CodingBroz. This tutorial is only for Educational and Learning Purpose.