[DHBB25 - DX17 - 10] Bài 3: Mở rộng tập hợp
Xem dạng PDF
Gửi bài giải
Điểm:
60,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
1G
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT
Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài
Cho tập ~S~ các điểm trên mặt phẳng với tọa độ nguyên dương. Tập này được mở rộng nhiều lần bằng cách bổ sung các điểm mới theo các quy tắc sau:
- Nếu điểm tọa độ ~(x, y) \in S~ thì điểm ~(x+1, y+1)~ cũng thuộc ~S~.
- Nếu điểm tọa độ ~(x, y) \in S~ và ~x, y~ cùng chia hết cho ~k~ thì điểm ~(\frac{x}{k}, \frac{y}{k})~ cũng thuộc ~S~.
- Nếu 2 điểm ~(x, y)~ và ~(y, z)~ thuộc ~S~ thì điểm ~(x, z)~ cũng thuộc ~S~.
Ví dụ, cho ~k = 2~, với tập ~S~ ban đầu chứa điểm ~\{(3, 5)\}~, ta có các mở rộng: ~(3, 5); (4, 6); (5, 7); (2, 3); (3, 7); \dots~
Yêu cầu: Cho biết ~k~ và ban đầu tập ~S~ chứa điểm ~(a, b)~. Hãy xác định xem điểm ~(p, q)~ có thuộc tập ~S~ mở rộng hay không.
Input
- Dòng đầu chứa số nguyên dương ~T~ (~T \le 100~) – số lượng bộ dữ liệu trong file input. ~T~ nhóm dòng tiếp theo, mỗi nhóm dòng bao gồm:
- Dòng đầu tiên chứa 3 số nguyên ~k, a, b~ (~a < b~).
- Dòng thứ 2 chứa số nguyên dương ~m~ (~m \le 100~) là số lượng truy vấn.
- ~m~ dòng tiếp theo – mỗi dòng chứa 2 số nguyên dương ~p~ và ~q~.
Output
- Với mỗi cặp giá trị ~(p, q)~ đưa ra trên một dòng câu trả lời YES hoặc NO theo thứ tự câu truy vấn trong input.
Sample Input 1
1
2 3 5
5
4 6
2 3
1 1
2 5
4 7
Sample Output 1
YES
YES
NO
YES
YES
Bình luận