EGOI 2026 - Ferris Wheel

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2300 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Vòng quay Ferris nổi tiếng ở quảng trường chính Cesenatico đã được tháo dỡ trong mùa đông. Mùa hè sắp đến và đã đến lúc lắp lại vòng quay.

\(N\) cabin riêng lẻ, đánh số từ \(0\) đến \(N-1\), cần được nối thành một vòng tròn. Số hiệu cabin không nhất thiết trùng với thứ tự lắp đặt. Mỗi cabin có một khớp nối với cabin kế tiếp theo chiều kim đồng hồ, thuộc một trong hai loại:

  • +: chỉ có thể nối với cabin có số hiệu lớn hơn;
  • -: chỉ có thể nối với cabin có số hiệu nhỏ hơn.

Hình 1: \(N=5\) cabin rời, mỗi cabin có một khớp loại + hoặc -.

Hãy xác định có thể lắp tất cả \(N\) cabin thành một vòng quay hay không. Nếu có, hãy tìm một thứ tự hợp lệ.

Hình 2: Một vòng quay Ferris hợp lệ được lắp từ năm cabin ở Hình 1.

Một thứ tự hợp lệ là dãy \(C_0,C_1,\ldots,C_{N-1}\) thỏa mãn:

  • Mỗi số từ \(0\) đến \(N-1\) xuất hiện đúng một lần.
  • Với mọi \(0\le i\le N-2\): nếu cabin \(C_i\) có loại + thì \(C_{i+1}>C_i\); nếu có loại - thì \(C_{i+1}<C_i\).
  • Cabin \(C_0\) cũng phải thỏa điều kiện do loại khớp của cabin \(C_{N-1}\) đặt ra.

Dữ liệu vào

Dòng đầu chứa số nguyên \(N\).

Dòng thứ hai chứa xâu \(S\) độ dài \(N\), chỉ gồm +-. Ký tự \(S_i\) là loại khớp của cabin \(i\).

Dữ liệu ra

Nếu không tồn tại thứ tự hợp lệ, in NO.

Nếu tồn tại, in YES, sau đó in một dòng gồm \(N\) số nguyên là các số hiệu cabin theo chiều kim đồng hồ, bắt đầu tại vị trí bất kỳ. Có thể in bất kỳ đáp án hợp lệ nào.

Ràng buộc

  • \(3\le N\le300\,000\).
  • \(S_i\)+ hoặc -.

Phân nhóm

  1. \(16\) điểm: \(N=3\).
  2. \(13\) điểm: xâu \(S\) có đúng một ký tự +.
  3. \(24\) điểm: các ký tự +- xen kẽ, tức \(S_i\ne S_{i+1}\) với mọi \(0\le i\le N-2\).
  4. \(23\) điểm: \(N\le1000\).
  5. \(24\) điểm: không có ràng buộc thêm.

Ví dụ

Ví dụ 1

Input
3
+++
Output
NO

Ví dụ 2

Input
5
+-+--
Output
YES
0 3 2 4 1
Note

Hình 3: Vòng quay Ferris của ví dụ 2; hình này giống Hình 2.

Ví dụ 3

Input
7
------+
Output
NO

Ví dụ 4

Input
8
+-+-+-+-
Output
YES
3 2 4 6 7 1 0 5
Note

Hình 4: Vòng quay Ferris tương ứng với kết quả của ví dụ 4.

Ví dụ 5

Input
11
+++--+-++--
Output
YES
10 0 5 8 9 4 2 6 3 1 7
Note

Hình 5: Vòng quay Ferris tương ứng với kết quả của ví dụ 5.

Nguồn

EGOI 2026 - Ngày 1, Ferris Wheel.

Đề bài EGOI 2026 được phát hành theo giấy phép Creative Commons Attribution (CC BY).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: