Chia Kẹo

Xem dạng PDF

Gửi bài giải


Điểm: 0,01 (OI)
Giới hạn thời gian: 1.5s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Có ~n~ em bé được đánh số từ ~1~ đến ~n~ và ~m~ cái kẹo được đánh số từ ~1~ đến ~m~. Cho mảng số nguyên ~a_1, a_2, \ldots, a_m~, cái kẹo thứ ~i~ được yêu thích bởi em bé thứ ~a_i~.

Bạn cần chia toàn bộ ~m~ cái kẹo cho các em bé. Mỗi cái kẹo phải được đưa cho đúng một em bé. Ban đầu, mọi em bé đều có độ vui là ~0~. Khi em bé ~x~ nhận kẹo thứ ~i~:

  • Nếu ~x = a_i~, độ vui của em bé ~x~ tăng thêm ~2~;

  • Nếu ~x \ne a_i~, độ vui của em bé ~x~ tăng thêm ~1~.

Một cách chia kẹo được gọi là vui vẻ khi độ vui của hai em bé bất kỳ chênh nhau không quá ~1~.

Hãy tìm một cách chia kẹo vui vẻ bất kỳ, hoặc chỉ ra rằng không tồn tại cách chia kẹo nào vui vẻ.

Input

Mỗi bộ dữ liệu gồm nhiều test case. Dòng đầu tiên chứa số lượng test case ~t~ (~1 \le t \le 10^4~). Phần mô tả các test case như sau.

  • Dòng đầu tiên chứa hai số nguyên ~n~ và ~m~ (~1 \le n, m \le 2 \cdot 10^5~) — số lượng em bé và số lượng kẹo.

  • Dòng thứ hai chứa ~m~ số nguyên ~a_1, a_2, \ldots, a_m~ (~1 \le a_i \le n~), trong đó ~a_i~ là em bé yêu thích cái kẹo thứ ~i~.

Đảm bảo rằng:

  • tổng ~n~ qua tất cả các test case không quá ~2 \cdot 10^5~;

  • tổng ~m~ qua tất cả các test case không quá ~2 \cdot 10^5~.

Output

Với mỗi test case:

  • Nếu không tồn tại cách chia kẹo vui vẻ, in ra NO.

  • Ngược lại, in ra YES. Sau đó in ra ~m~ số nguyên ~b_1, b_2, \ldots, b_m~, trong đó ~b_i~ là chỉ số của em bé nhận cái kẹo thứ ~i~.

    Nếu có nhiều cách chia kẹo vui vẻ, hãy in ra một cách thỏa mãn bất kỳ.

Scoring

Tổng điểm của bài này là ~1500~.

Sample Input 1

2
3 3
1 2 3
3 1
1

Sample Output 1

YES
1 2 3
YES
2

Notes

Trong test case đầu tiên, mỗi em đều nhận được một cái kẹo, và em nào cũng nhận được cái kẹo mà mình thích. Do đó, độ vui của tất cả các em đều là ~2~.

Trong test case thứ hai, cái kẹo duy nhất được phát cho em bé thứ hai. Vì em bé thứ hai không thích cái kẹo này, nên độ vui của em là ~1~, còn độ vui của hai em bé còn lại đều là ~0~.

Cũng trong ví dụ thứ hai, nếu ta chia chiếc kẹo này cho em bé thứ nhất, thì đây không phải là cách chia kẹo vui vẻ: độ vui của em bé ~1~ là ~2~, còn độ vui của em bé ~2~ là ~0~, do đó độ chênh lệch lớn hơn ~1~.


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.