Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
COEDU076 - Trạm phát sóng |
Cho N (N < 20) camera có khoảng cách thu sóng là X (X <= 10) . Ta đặt cột phát sóng có tầm hoạt động là P (P <= 10). Một camera được tính là thu được sóng khi tổng khoảng cách giữa camera và cột phát sóng gần nhất không vượt quá P + X. Cho vị trí đặt các camera. Tìm cách đặt số lượng cột nhỏ nhất sao cho các camera đều thu được sóng, biết vị trí của camera đầu tiên là 1 và camera cuối cùng là 50. Mỗi testcase được viết trên hai dòng, dòng đầu tiên là N - số camera, P - khoảng cách phát sóng và X - tầm thu sóng. Ví dụ:
1 // số testcase
5 2 1 // 5 camera có tầm phát là 2, tầm thu của cột là 1
1 3 6 7 9 // vị trí của camera được đánh dấu theo số
Đặt cột sóng tại ví trí 4:
ta sẽ phủ sóng tại các vị trí 2,3,4,5,6
camera 1: thu sóng được tại vị trí 2
camera 6 thu sóng được tại vị trí 5,7
camera 7 thu sóng được tại vị trí 6,8
=> khi đặt cột sóng ở vị trí 4 ta sẽ phủ sóng được camera 1, camera 3, camera 6 và camera 7
Tương tự đặt cột sóng tại ví trí 8: ta sẽ phủ sóng cho camera 6, 7 và 9
Vậy, phải đặt ít nhất 2 cột sóng.
Input
Dòng đầu tiên là số test case.
Mỗi test được viết trên 2 dòng:
Dòng thứ nhất của test case bao gồm 3 chữ số, lần lượt là số camera (N), phạm vi phát sóng của cột phát sóng (P) và tầm thu sóng của các camera (X)
Dòng thứ 2 là vị trí của các camera được đánh số từ 1
Output
In output theo định dạng sau: đầu tiên là ký tự "#", tiếp theo là số thứ tự của test case bắt đầu từ 1, tiếp theo là một khoảng trắng và cuối cùng là số cột phát sóng ít nhất cần phải đặt vào để phủ sóng toàn bộ N camera
Example
Input: 5 2 2 2 1 6 3 2 2 1 4 6 2 2 1 1 4 3 1 2 1 5 9 6 1 2 1 18 5 3 8 12 Output: #1 1 #2 1 #3 1 #4 2 #5 3
Được gửi lên bởi: | Phòng đào tạo Coedu |
Ngày: | 2023-09-16 |
Thời gian chạy: | 1s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | C C++ 4.3.2 CPP JAVA |