[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

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.