Kangaroo

bạn là biên đạo múa của 1 rạp xiếc trình diễn nhiều loại vật. cho mỗi hành động bạn chọn ra 2 Kangaroo của 1 số sẵn sàng để nhảy theo hướng dương (ví dụ có thể nhảy đến vô cực dương)

Kangaroo đầu tiên đứng ở vị trí x1 và di chuyển với vận tốc v1 cho mỗi bước nhảy
Kangaroo thứ 2 đứng ở vị trí x2 và di chuyển với vận tốc v2 cho mỗi bước nhảy

bạn hãy chi ra 1 cách để  con Kangaroo cùng  vị trí và cùng 1 thời gian trong cuộc biểu diễn. nếu có thể trả về YES nếu không thể trả về NO

cho ví dụ Kangaroo 1 đứng ở vị trí x1 = 2 với bước nhảy v1 = 1 và Kangaroo 2 đứng ở ví trí x2  = 1 với bước nhảy v2  = 1 . sau 1 bước nhảy cả 2 con đều ở vị trí x = 3 x1 + v1 = 2 + 1 x2 + v2 = 1 + 2 vì vậy chúng ta trả lời là YES

Miêu tả chức năng
hoàn thành bài toán Kangaroo được cho bên dưới. Nó sẽ trả về là YES nếu nếu chúng có thể ở cùng 1 vị trí và cùng 1 thời gian nếu không trả về NO

Kangaroo có các parameter sau
x1, v1 các số nguyên điểm bắt đầu và bước nhảy của Kangaroo1
x2, v2 các số nguyên điểm bắt đầu và bước nhảy của Kangaroo2

giá trị đầu vào
trên cùng  dòng biểu diễn các số nguyên riêng biệt x1, v1 , x2 và v2

ràng buộc
0<=x1 < x2 <= 10000
1<= x1 <= 10000
1<= x2 <= 10000

giá trị đầu ra
In ra giá trị YES nếu chúng cùng 1 vị trí và cùng thời gian nếu không trả về NO
Lưu ý: 2 con Kangaroo phai ở cùng 1 vị trí sau cùng 1 số bước nhảy

ví dụ đầu vào 0
0 3 4 2

ví dụ giá trị đầu ra 0
YES

giải thích
2 con Kangaroo cùng nhảy tuần tự trên 1 vị trí


trên hình rõ rang 2 con Kangaroo gặp nhau cung 1 điểm (vị trí 12) với 4 bước nhảy vì vậy chúng ta in ra YES

giá trị đầu vào 1
0 2 5 3

giá trị đầu ra 1
NO

giải thích
con Kangaroo thứ 2 ở vị trí xuất phát trước ( hướng về bên phải) con Kangaroo 1 (x2 > x1). bởi vì con Kangaroo 2 di chuyển nhanh hơn có nghĩa (v2 > v1) và đã đi trước con Kangaroo 1. vì vậ con Kangaroo 1 không thể bắt kịp . vì vậy chúng ta in ra NO

php

<?php

// Complete the kangaroo function below.
function kangaroo($x1, $v1, $x2, $v2) {
$catchup = 'NO';
if(($x1 > $x2 && $v1 >= $v2) ||($x1 == $x2 && $v1 > $v2)) {
$catchup = 'NO';
} else if(($x1 < $x2 && $v1 <= $v2) ||($x1 == $x2 && $v1 < $v2)) {
$catchup = 'NO';
} else {
$catchOver = false;
$jump = 0;
while(!$catchOver) {
$jump++;
if($x1 + $v1 * $jump == $x2 + $v2 * $jump) {
$catchup = 'YES';
break;
}
if($x1 < $x2) {
if($x1 + $v1 * $jump > $x2 + $v2 * $jump) {
$catchOver = true;
}
} else {
if($x1 + $v1 * $jump < $x2 + $v2 * $jump) {
$catchOver = true;
}
}
}
}
return $catchup;
}

$fptr = fopen(getenv("OUTPUT_PATH"), "w");

$stdin = fopen("php://stdin", "r");

fscanf($stdin, "%[^\n]", $x1V1X2V2_temp);
$x1V1X2V2 = explode(' ', $x1V1X2V2_temp);

$x1 = intval($x1V1X2V2[0]);

$v1 = intval($x1V1X2V2[1]);

$x2 = intval($x1V1X2V2[2]);

$v2 = intval($x1V1X2V2[3]);

$result = kangaroo($x1, $v1, $x2, $v2);

fwrite($fptr, $result . "\n");

fclose($stdin);
fclose($fptr);

Comments

Popular posts from this blog

Intro to Tutorial Challenges

Mini-Max Sum