Sát nhập

Xem dạng PDF

Gửi bài giải

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

Dạng bài

Hai công ty sát nhập. Hội đồng quản trị gồm ~n~ người cần bầu Tổng giám đốc mới theo thể lệ: mỗi người bỏ đúng ~1~ phiếu cho một thành viên thuộc công ty ban đầu khác với mình (tức là người của công ty ~1~ chỉ được bầu cho người của công ty ~2~ và ngược lại). Sau khi kiểm phiếu sơ bộ, ta chỉ biết danh sách ~n~ số nguyên ~a_1,a_2,\dots,a_n~, trong đó ~a_i~ là số phiếu mà người thứ ~i~ nhận được. Do thông tin có thể bị sai, hãy kiểm tra xem dãy ~a_i~ có hợp lý về mặt lô-gic hay không; nếu hợp lý, hãy đưa ra một cách suy đoán mỗi người thuộc công ty ban đầu ~1~ hay ~2~.

Yêu cầu

  • In ra YES nếu tồn tại cách gán mỗi người vào một trong hai công ty ban đầu ~1~ hoặc ~2~ sao cho có thể tồn tại một quá trình bỏ phiếu thỏa mãn:

    • Mỗi người bỏ đúng ~1~ phiếu.
    • Phiếu của một người chỉ được bầu cho người thuộc công ty còn lại.
    • Mỗi người ~i~ nhận đúng ~a_i~ phiếu.
  • Nếu không tồn tại, in ra NO.
  • Nếu in YES, dòng tiếp theo in ra ~n~ số thuộc tập {1,2}, số thứ ~i~ cho biết người ~i~ thuộc công ty ban đầu nào.

Dữ liệu

  • Dòng ~1~: số nguyên ~n~.
  • Dòng ~2~: ~n~ số nguyên ~a_1,a_2,\dots,a_n~.

Kết quả

  • Dòng ~1~: YES hoặc NO.
  • Nếu là YES, dòng ~2~: ~n~ số thuộc {1,2} mô tả công ty ban đầu của từng người.

Ví dụ

Ví dụ 1

Input

5
1 2 0 2 0

Output

YES
1 2 2 1 2

Ràng buộc

  • ~2 \le n \le 10^5~
  • ~0 \le a_i < n~ với mọi ~i~

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.