Mofk Cup Round 1 - ARTS

Xem dạng PDF

Gửi bài giải


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

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

Ban tổ chức Mofk Cup quyết định tổ chức ~1~ buổi văn nghệ. Ở một tiết mục, họ cử ra ~n~ cặp bạn, cặp bạn đồng hành thứ ~i~ có chiều cao ~i~. Tiết mục này ~2n~ người trên sẽ xếp thành ~1~ hàng ngang. Sẽ có một số vị trí quan trọng, được gọi là "spotlight", được đánh số ~1~, và các vị trí còn lại được đánh số ~0~.

Hàng ~2n~ người trên sẽ được gọi là đẹp nếu ở mỗi vị trí spotlight, người đứng ở đó có thể nhìn thấy bạn đồng hành cùng cặp của mình, và những vị trí không phải spotlight thì không thể nhìn thấy bạn đồng hành cùng cặp của mình. ~2~ người trong cùng ~1~ cặp đôi được gọi là nhìn thấy nhau nếu tất cả mọi người ở các vị trí giữa họ đều có chiều cao thấp hơn họ. Nói cách khác, nếu ~2~ người trong cùng ~1~ cặp đôi đứng ở vị trí ~L~ và ~R~, thì: ~h_L= h_R > max(h_{L+1},h_{L+2},...,h_{R-1})~.

Hãy giúp ban tổ chức xem có cách để xếp ~2n~ người trên vào hàng sao cho hàng đó được coi là đẹp hay không. Nếu có, hãy in ra ~1~ cách bất kì.

Input

Dòng đầu tiên gồm một số nguyên dương ~n~ là số lượng cặp đôi ~(1 \leq n \leq 5\times10^5)~.

Dòng thứ hai là một chuỗi ký tự độ dài ~2n~ chỉ bao gồm 2 loại ký tự '0' và '1'. Người ở vị trí ~i~ sẽ nhìn thấy bạn đồng hành của mình khi ký tự thứ ~i~ là '1'.

Output

Ở dòng đầu tiên, nếu có tồn tại kết quả thì in ra "YES", không thì "NO" (in ra không có dấu nháy đôi và không quan trọng in hoa).

Nếu có tồn tại kết quả thì in ra dòng thứ 2 bao gồm ~2n~ số nguyên dương. Số thứ ~i~ là chiều cao của người thứ ~i~ và thỏa mãn yêu cầu đề bài.

Scoring

  • ~20\%~ số test có: ~0 < n \le 20~.

  • ~30\%~ số test khác có ~0 < n \le 3000~.

  • ~50\%~ số test còn lại không có ràng buộc gì thêm.

Sample Input 1

5
1000100000

Sample Output 1

YES
5 4 3 2 5 1 4 3 2 1

Đang tải...