Thumbnail
Category: Luyện Skill

Ntucoder - ROBOT5 - Robot đi tuần

Date: March 6, 2020
130 views
  • 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

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 xyc (1 <= xy <= 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

testRobotDiTuanTải xuống

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é.


Copyright © 2025 All Right Reserved