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
YESnế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~:
YEShoặcNO. - 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