Witam mam poniższe zadanie na HackerRank. W przykładowym teście o numerze 0 są takie argumenty:
x1 = 0, v1 = 3, x2 = 4, v2 = 2.
Problem w tym, że moja odpowiedź jest NO, a według przykładu YES. Wydaje mi się, że moja odpowiedź jest poprawna, ponieważ żeby oba kangury znalazły się w tym samym miejscu, pierwszy musi zrobić 2 skoki, a drugi 1. Spotkają się w miejscu na osi oznaczonym 6. Po submitowaniu mam błędy w 6 na 30 odpowiedzi. W czym jest problem?
Poniżej kod:
import java.util.Scanner;
public class Solution {
static String kangaroo(int x1, int v1, int x2, int v2) {
int countOfFirstKangaroo = x1;
int countOfSecondKangaroo = x2;
int jumpsOfFirst = 0;
int jumpsOfSecond = 0;
if ((x1 < x2 && v1 < v2) || (x1 == x2 && v1 < v2) || (x1 < x2 && v1 == v2)) {
return "NO";
} else {
while (countOfFirstKangaroo != countOfSecondKangaroo) {
if (countOfFirstKangaroo < countOfSecondKangaroo) {
countOfFirstKangaroo += v1;
jumpsOfFirst++;
} else if (countOfFirstKangaroo > countOfSecondKangaroo) {
countOfSecondKangaroo += v2;
jumpsOfSecond++;
}
}
}
if (jumpsOfFirst == jumpsOfSecond) return "YES";
else return "NO";
}
private static final Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
int x1 = scanner.nextInt();
int v1 = scanner.nextInt();
int x2 = scanner.nextInt();
int v2 = scanner.nextInt();
System.out.println(kangaroo(x1, v1, x2, v2));
scanner.close();
}
}