You are choreographing a circus show with various animals. For one act, you are given two kangaroos on a number line ready to jump in the positive direction (i.e, toward positive infinity).
- The first kangaroo starts at location and moves at a rate of meters per jump.
- The second kangaroo starts at location and moves at a rate of meters per jump.
You have to figure out a way to get both kangaroos at the same location at the same time as part of the show. If it is possible, return YES
, otherwise return NO
.
Example
After one jump, they are both at , (, ), so the answer is YES
.
Function Description
Complete the function kangaroo in the editor below.
kangaroo has the following parameter(s):
- int x1, int v1: starting position and jump distance for kangaroo 1
- int x2, int v2: starting position and jump distance for kangaroo 2
Returns
- string: either
YES
orNO
Input Format
A single line of four space-separated integers denoting the respective values of , , , and .
Constraints
Sample Input 0
0 3 4 2
Sample Output 0
YES
Explanation 0
The two kangaroos jump through the following sequence of locations:
From the image, it is clear that the kangaroos meet at the same location (number on the number line) after same number of jumps ( jumps), and we print YES
.
Sample Input 1
0 2 5 3
Sample Output 1
NO
Explanation 1
The second kangaroo has a starting location that is ahead (further to the right) of the first kangaroo's starting location (i.e., ). Because the second kangaroo moves at a faster rate (meaning ) and is already ahead of the first kangaroo, the first kangaroo will never be able to catch up. Thus, we print NO.
Solution :-
'use strict';
const fs = require('fs');
process.stdin.resume();
process.stdin.setEncoding('utf-8');
let inputString = '';
let currentLine = 0;
process.stdin.on('data', function(inputStdin) {
inputString += inputStdin;
});
process.stdin.on('end', function() {
inputString = inputString.split('\n');
main();
});
function readLine() {
return inputString[currentLine++];
}
/*
* Complete the 'kangaroo' function below.
*
* The function is expected to return a STRING.
* The function accepts following parameters:
* 1. INTEGER x1
* 2. INTEGER v1
* 3. INTEGER x2
* 4. INTEGER v2
*/
function kangaroo(x1, v1, x2, v2) {
// Write your code here
var result = "NO";
var r1 = x1;
var r2 = x2;
if(x2>x1 && v2>v1){
return "NO";
}
if(x2>x1 && v2 === v1){
return "NO";
}
else{
do{
r1 = r1 + v1;
r2 = r2 + v2;
// console.log(r1 +" : "+ r2)
if(v1>v2 && r1 > r2){
return "NO"
}
// console.log(r1 +" : "+ r2)
if(r1 === r2){
return "YES";
}
// console.log(r1 !== r2)
}while(r1 !== r2);
//return "YES"
}
// return (r1 === r1)? "YES":"NO";
}
function main() {
const ws = fs.createWriteStream(process.env.OUTPUT_PATH);
const firstMultipleInput = readLine().replace(/\s+$/g, '').split(' ');
const x1 = parseInt(firstMultipleInput[0], 10);
const v1 = parseInt(firstMultipleInput[1], 10);
const x2 = parseInt(firstMultipleInput[2], 10);
const v2 = parseInt(firstMultipleInput[3], 10);
const result = kangaroo(x1, v1, x2, v2);
ws.write(result + '\n');
ws.end();
}