| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 128 MB | 0 | 0 | 0 | 0.000% |
Fabryka BeczkoBit specjalizuje się w produkcji beczek na kiszone bajty. Linia produkcyjna jest całkowicie zautomatyzowana. Wąskie gardło stanowi magazyn, w którym wyprodukowane beczki są ustawiane w kolejności swych wielkości (od najmniejszych do największych, wszystkie beczki mają różne rozmiary). Zadanie sortowania beczek jest realizowane przez zestaw dźwigów - każdy z dźwigów może zamieniać miejscami dwie dowolne beczki. Dźwigi pracują równolegle. Zamiana dwóch beczek miejscami przez dźwig zajmuje jednostkę czasu. W każdej jednostce czasu, każda beczka może być przemieszczana przez co najwyżej jeden dźwig. Kontrolerzy zauważyli, że pracę dźwigów można w znacznym stopniu przyspieszyć, należy jedynie napisać nowe oprogramowanie do sterowania pracą dźwigów. Prezes firmy BeczkoBit zgłosił się do Ciebie z prośbą o napisanie takiego oprogramowania.
Napisz program, który:
Pierwszy wiersz zawiera liczbę całkowitą n (1 ≤ n ≤ 100 000), oznaczającą liczbę beczek. Kolejny wiersz zawiera n różnych liczb całkowitych ze zbioru {1, 2,...,n}, reprezentujących wielkości poszczególnych beczek (w kolejności występowania w magazynie -- beczka stojąca na pierwszej pozycji jest reprezentowana przez pierwszą liczbę w opisie, ostatnia beczka jest reprezentowana przez ostatnią liczbę w opisie).
W pierwszym wierszu Twój program powinien wypisać jedną liczbę całkowitą k -- czas potrzebny na wykonanie sortowania. Kolejne wiersze powinny zawierać opisy operacji, które powinny wykonywać dźwigi:
Uwaga: Dwie operacje wykonywane w jednej jednostce czasu nie mogą dotyczyć tej samej beczki, co wynika bezpośrednio z faktu, że beczka może być przestawiana w danym momencie co najwyżej przez jeden dźwig. Może być wiele zestawów operacji prowadzących w minimalnym czasie do konfiguracji końcowej. Twój program ma wypisać dowolną, poprawną sekwencję.
6 1 2 4 3 6 5
1 0 5 6 0 3 4 2
Contest > Algorithmic Engagements > PA 2005 6-2번