QOJ.ac

QOJ

Total points: 100 Unavailable

#11678. Pudełka

Statistics

UWAGA: Aktualnie nie można zgłaszać rozwiązań tego zadania.

Na stole ustawiono w rzędzie $n$ pudełek. Wśród nich, pewne dwa sąsiednie pudełka są puste. Reszta pudełek zawiera $n/2 - 1$ czerwonych piłeczek i $n/2 - 1$ zielonych piłeczek. W każdym pudełku znajduje się co najwyżej jedna piłeczka.

Bajtazar wymyślił bardzo ciekawą grę, polegającą na przekładaniu piłeczek między pudełkami w ten sposób, aby na koniec wszystkie czerwone piłeczki znalazły się przed wszystkimi zielonymi. W każdym pojedynczym ruchu wolno przełożyć dwie sąsiadujące piłeczki do pustych pudełek, przy czym podczas tej operacji nie wolno zamieniać ich kolejności. Bajtazar przyszedł do Ciebie z prośbą o pomoc w napisaniu programu grającego w tę grę.

Dysponujesz 11 zestawami danych umieszczonych w dziale Przydatne zasoby. Każdy zestaw jest zapisany w osobnym pliku pud*k*.in, gdzie $k$ jest numerem zestawu ($0 ≤ k ≤ 10$). Rozwiązaniem do zadania ma być archiwum spakowane przy użyciu programu zip, które powinno zawierać pliki pud*k*.out z wynikami dla poszczególnych zestawów. Sumaryczny rozmiar plików przed spakowaniem nie może przekraczać 10 MB, a wielkość archiwum nie może przekraczać 3 MB. Pierwszy wiersz pliku z wynikiem powinien zawierać liczbę ruchów $m$ potrzebnych do wykonania sortowania. Każdy z kolejnych $m$ wierszy powinien zawierać po jednej liczbie $p_k$ ($0 \le p_k \le n - 2$), opisującej $k$ - ty ruch. Ruch opisany przez liczbę $p_k$ polega na przeniesieniu piłeczki z pudełka $p_k$ do lewego, pustego pudełka, a piłeczki z pudełka $p_k + 1$ do prawego, pustego pudełka.

UWAGA: Zawodnik otrzyma 1 punkt za zestaw pod warunkiem, że wypisana sekwencja ruchów będzie prowadziła do poprawnej, posortowanej konfiguracji piłeczek, oraz żaden z zawodników nie poda krótszej sekwencji ruchów prowadzącej do poprawnej, posortowanej konfiguracji piłeczek.

Opis pojedynczego pliku wejściowego

W pierwszym wierszu znajduje się jedna parzysta liczba całkowita $n$ ($8 \le n \le 200\,000$), oznaczająca liczbę pudełek na stole. Pudełka są ponumerowane od 0, zaczynając od lewej strony. Kolejny wiersz zawiera $n$-literowe słowo, składające się z cyfr 0, 1 i 2. Kolejne cyfry w słowie odpowiadają kolejnym pudełkom 0, 1, 2, .... Cyfra 0 oznacza, że w pudełku znajduje się czerwona piłeczka, 1 oznacza, że w pudełku znajduje się zielona piłeczka, natomiast 2 reprezentuje puste pudełko.

Example

Input

10
0110220101

Output

5
1
3
5
8
2

or upload files one by one:

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.