Ntucoder – ROBOT5 – Robot đi tuần
- Dữ liệu vào: standard input
- Dữ liệu ra: standard output
- Giới hạn thời gian: 1.0 giây
- Giới hạn bộ nhớ: 128 megabyte
Contents
1. Nội dung đề bài
Trên bản đồ có một con robot đi tuần di chuyển theo quy tắc: nếu robot đứng ở ô (x, y) thì di chuyển sang ô (x’, y’), trong đó:
Robot xuất phát tại ô (x, y)
Biết rằng có một rada trên bản đồ tại vị trí (0, 0) và có mức độ phủ sóng c, nghĩa là cứ mỗi giây rada sẽ quét một hình tròn bán kính c và phá hủy những gì nó quét được kể cả vật đó nằm ở rìa của hình tròn. Nhiệm vụ của bạn là xác định xem nếu robot di chuyển theo quy tắc trên thì có thể bị phá hủy bởi rada hay không.
Input
Dòng đầu chứa số nguyên T (1 <= T <= 106) là số lượng test.
T dòng tiếp theo, mỗi dòng gồm 3 số nguyên x, y, c (1 <= x, y <= 109, 1 <= c <= 106, x khác y)
Output
Nếu robot có thể bị phá hủy in ra DANGER, ngược lại in ra SAFE với mỗi test tương ứng
2. Hiểu đề bài như thế nào?
Ví dụ:
//input
1
2015 2016 2048
//output
SAFE
Nếu như điểm robot đang đứng, sau một giây nữa thì robot sẽ di chuyển đến điểm mới theo công thức. Vậy điểm mới mà robot di chuyển có bị rada có bán kính cho trước quét ngang không? Nếu có thì in ra DANGER ngược lại thì SAFE.
3. Cách tui giải và code
Bài này thì áp dụng công thức toán, nếu 2 lần tọa độ điểm robot nhân với nhau mà lớn hơn bình phương của bán kính rada thì robot an toàn.
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long i,r,x,y,t;
cin >> t ;
for (i=1;i<=t;i++)
{
cin >> x >> y >> r ;
if ((2*x*y) > (r*r)) cout << "SAFE" << endl;
else cout << "DANGER" << endl;
}
return 0;
}
4. Các test case cho đề bài
Kết Luận
Bài viết sau mình sẽ chia sẽ các bạn GAO – Siêu nhân GAO nhé.