HackDream Orange 08-E: Chọn số

Xem PDF

Nộp bài


Điểm: 100 (thành phần)
Thời gian: 1.0s
Bộ nhớ: 100M
Input: bàn phím
Output: màn hình

Tác giả:
Dạng bài

Orange được cô giáo D giao ~T~ bài tập, mỗi bài tập cho dữ kiện là ~n~ số nguyên không âm ~a_1,a_2,...,a_n~ và một số nguyên dương ~m~, mỗi bài tập yêu cầu kiểm tra có tồn tại cách chọn ít nhất một số trong đó để tổng của chúng chia hết cho ~m~ hay không.

Nếu bạn cũng được giao bài như Orange thì bạn sẽ làm được chứ? :D

Input

Dòng đầu tiên chứa số nguyên dương ~T~.

Tiếp theo là ~T~ nhóm, có dạng như sau:

  • Dòng đầu tiên chứa hai số nguyên ~n~ và ~m~ ~(1 \le n \le 10^6, 2 \le m \le 10^3)~.
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, ..., a_n~ ~(0 \le a_i \le 10^9)~.

Dữ liệu đảm bảo tổng của các giá trị ~n~ qua ~T~ nhóm không vượt quá ~10^6~, tổng của các giá trị ~min(n,m) \times m~ qua ~T~ nhóm không vượt quá ~5 \times 10^6~.

Output

Tại dòng thứ ~i~ trong ~T~ dòng, đưa ra ~\texttt{YES}~ nếu ở bài tập thứ ~i~, tồn tại cách chọn ít nhất một số trong đó để tổng của chúng chia hết cho ~m~, hoặc đưa ra ~\texttt{NO}~ nếu ngược lại.

Scoring

Subtask Score Constraints
1 ~15\%~ Tổng của các giá trị ~2^n~ qua ~T~ nhóm không vượt quá ~5 \times 10^6~
2 ~50\%~ Tổng của các giá trị ~n \times m~ qua ~T~ nhóm không vượt quá ~5 \times 10^6~
3 ~35\%~ Không có ràng buộc gì thêm

Sample Input

2
3 7
2 4 8
3 7
1 4 5

Sample Output

YES
NO

Bình luận đầu tiên

Bình luận

Không có bình luận nào.