QOJ.ac

QOJ

Limite de temps : 2 s Limite de mémoire : 1024 MB Points totaux : 100

#17527. Туристический маршрут

Statistiques

В королевстве UCPC есть круговой туристический маршрут, состоящий из $N$ участков, позволяющий осмотреть всё королевство. На каждом участке есть один автобус, следующий до следующего участка: для $1 \leq i < N$ с $i$-го участка можно попасть на $(i+1)$-й, а с $N$-го участка — на $1$-й.

$N$ туристов из Арктики собираются осмотреть королевство UCPC, используя этот маршрут. $i$-й турист начинает путь с $i$-го участка и посещает в общей сложности $N$ участков.

Каждый участок является либо снежным полем, либо пустыней. Каждый турист начинает путь с уровня симпатии, равного $1$. При прохождении снежного участка уровень симпатии увеличивается на $1$, а при прохождении пустыни — уменьшается на $1$. Если во время экскурсии уровень симпатии туриста становится равным $0$, он немедленно прекращает осмотр и уезжает к себе на родину. Если после посещения всех $N$ участков уровень симпатии туриста составляет $1$ или более, он покупает дорогой сувенир королевства UCPC и возвращается домой.

Вы, живя в Арктике, знаете, купил ли каждый турист сувенир, и должны использовать эту информацию, чтобы восстановить структуру туристического маршрута королевства UCPC. Учитывая информацию о покупке сувениров туристами с $1$-го по $N$-й, выведите один из возможных вариантов структуры маршрута.

Входные данные

В первой строке дано число $N$ — количество участков туристического маршрута $(1 \leq N \leq 500\,000)$.

Во второй строке дана строка длины $N$, представляющая информацию о покупке сувениров $i$-м туристом. $i$-й символ указывает на то, купил ли $i$-й турист сувенир: O, если купил, и X, если не купил.

Выходные данные

Если для заданных входных данных существует возможная структура туристического маршрута королевства UCPC, выведите YES в первой строке и строку длины $N$ во второй строке. В $i$-й позиции строки выведите +, если $i$-й участок является снежным полем, и -, если пустыней.

Если для заданных входных данных такой структуры не существует, выведите NO в первой строке.

Примеры

Входные данные 1

5
OXOXO

Выходные данные 1

YES
+-+-+

Входные данные 2

6
XXXXXX

Выходные данные 2

YES
+--+--

Входные данные 3

5
XXXOX

Выходные данные 3

NO

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.