Cuộn Giấy Canh Gác

Xem dạng PDF

Gửi bài giải


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

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

Sau khi vượt qua không gian phân mảnh, nhóm thám hiểm đứng trước cánh cổng khổng lồ dẫn vào Tẩm Cung Hổ Phách – nơi Vua KDA đang ẩn mình.

Nhưng lối vào đã bị chặn đứng bởi Đội Cấm Vệ Quân. Đó không phải là người bằng xương bằng thịt, mà là ~n~ bộ giáp rỗng ruột bằng đồng thau, đứng sừng sững trên ~n~ bệ đá xếp thành một vòng tròn khép kín bao quanh tẩm cung. Các bệ đá được đánh số từ ~1~ đến ~n~ theo chiều kim đồng hồ.

Trên tay mỗi bộ giáp cầm một thanh đại kiếm. Cơ chế bảo vệ này được gọi là "Vòng Xoay Tử Thần". Để mở cánh cổng, các bạn không được phá hủy chúng (vì chúng sẽ tự tái tạo), mà phải hack vào hệ thống điều khiển để khiến chúng tự khóa lẫn nhau.

Hệ thống điều khiển bao gồm ~n~ "Lõi Năng Lượng" bị tháo rời, mỗi lõi chứa một giá trị dịch chuyển ~d_i~. Nhà vua điên loạn đã thiết kế hệ thống sao cho:

  1. Bạn phải nạp mỗi bệ đá (vị trí ban đầu ~j~) một lõi năng lượng ~d_k~ bất kỳ trong số các lõi thu được.
  2. Khi hệ thống kích hoạt, bộ giáp tại vị trí ~j~ nhận lõi có giá trị ~d~ sẽ lập tức di chuyển theo chiều kim đồng hồ đúng ~d~ bước để đến bệ đá mới.
    • Ví dụ: Nếu ~n=5~, đứng ở bệ 2, lắp lõi ~d = 4~: Di chuyển qua 3, 4, 5, và dừng lại ở 1.

Cánh cổng chỉ mở ra khi hệ thống đạt trạng thái "Cân Bằng Tuyệt Đối": Sau khi tất cả ~n~ bộ giáp di chuyển đồng thời, mỗi bệ đá phải có đúng một bộ giáp trấn giữ. Nếu có bất kỳ bệ đá nào bị bỏ trống (hoặc có 2 bộ giáp va vào nhau tại cùng một bệ), hệ thống phòng thủ sẽ kích hoạt tia lazer tiêu diệt tất cả những kẻ xâm nhập.

Trong tay các bạn đang là ~n~ lõi năng lượng với các giá trị ~d_1, d_2, \dots, d_n~. Hãy tìm cách lắp chúng vào ~n~ bệ đá ban đầu sao cho trạng thái cân bằng được thiết lập, mở đường vào gặp nhà vua.

Input

Dòng đầu tiên chứa một số nguyên ~T~ (~1 \leq T \leq 1000~) - số lượng test.

Với mỗi test có định dạng:

  • Dòng thứ nhất chứa một số nguyên ~n~ (~1 \leq n \leq 100~) - số lượng bộ giáp.
  • Dòng thứ hai chứa ~n~ số nguyên ~d_1, d_2, \ldots, d_n~ (~1 \leq d_i \leq n~) - giá trị của các lõi năng lượng thu được.

Output

Với mỗi test, in ra kết quả tương ứng:

  • Nếu không thể thiết lập trạng thái cân bằng, in ra một dòng duy nhất chứa NO.
  • Nếu tồn tại cách thiết lập:
    • Dòng đầu tiên in YES.
    • Dòng thứ hai, in ra ~n~ số nguyên ~A_1, A_2, \ldots, A_n~, trong đó ~A_j~ là giá trị của lõi năng lượng được lắp vào bệ đá thứ ~j~. Dãy số ~A~ này phải là một hoán vị của dãy ~d~ đã cho.

Nếu có nhiều cách thiết lập, bạn chỉ cần in ra một cách bất kỳ.

Scoring

Subtask Percentage Constraints
1 10% - ~1 \le n \le 8~
2 05% - ~1 \le d_i \le 2~
3 06% - ~1 \le d_i \le 3~
4 07% - ~1 \le d_i \le 4~
5 08% - ~1 \le d_i \le 5~
4 24% - ~1 \le T \le 100~, ~1 \le n \le 25~
5 40% - Không ràng buộc gì thêm

Example

Input Output
3
4
1 1 1 1
3
2 1 2
5
2 4 1 2 1
YES
1 1 1 1
NO
YES
4 1 1 2 2


Note

Giải thích cho ví dụ 3 (~N=5~, với các lõi cho trước là ~\{1, 1, 2, 2, 4\}~):

Cách lắp đặt: Bệ 1 lắp lõi 4, Bệ 2 lắp lõi 1, Bệ 3 lắp lõi 1, Bệ 4 lắp lõi 2, Bệ 5 lắp lõi 2.

  • Bộ giáp tại Bệ 1 (lõi ~4~): đi qua 2, 3, 4, 5 ~\rightarrow~ Dừng tại Bệ 5.
  • Bộ giáp tại Bệ 2 (lõi ~1~): đi qua 3 ~\rightarrow~ Dừng tại Bệ 3.
  • Bộ giáp tại Bệ 3 (lõi ~1~): đi qua 4 ~\rightarrow~ Dừng tại Bệ 4.
  • Bộ giáp tại Bệ 4 (lõi ~2~): đi qua 5, 1 ~\rightarrow~ Dừng tại Bệ 1.
  • Bộ giáp tại Bệ 5 (lõi ~2~): đi qua 1, 2 ~\rightarrow~ Dừng tại Bệ 2.

Kết quả: Các vị trí đích là ~\{5, 3, 4, 1, 2\}~. Mỗi bệ đá đều có đúng 1 bộ giáp. Cửa mở!


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.