Kodowanie permutacji
Limit pamięci: 32 MB
Każdą permutację liczb
można zakodować za pomocą ciągu
,
w którym
jest równe liczbie wszystkich
takich, że:
(
oraz
), dla każdego
.
Przykład
Kodem permutacji jest
ciąg:
.
Zadanie
Napisz program, który:
- wczytuje ze standardowego wejścia długość
i kolejne wyrazy ciągu liczb
,
- sprawdza, czy jest on kodem jakiejś permutacji liczb
,
- jeżeli tak, to znajduje tę permutację i zapisuje ją na standardowym wyjściu,
- w przeciwnym przypadku zapisuje na standardowym wyjściu jedno słowo NIE.
Wejście
- W pierwszym wierszu standardowego wejścia jest zapisana dodatnia liczba
całkowita
. Jest to liczba wyrazów ciągu
.
- W każdym z kolejnych
wierszy jest zapisana jedna liczba całkowita nieujemna nie większa niż
. Jest to kolejny wyraz ciągu
.
Wyjście
Na standardowym wyjściu należy zapisać:
- w każdym z kolejnych
wierszy jeden wyraz permutacji
, której kodem jest dany ciąg
, zapisany na standardowym wejściu,
- jedno słowo NIE, jeśli ciąg
nie jest kodem żadnej permutacji.
Przykłady
Dla danych wejściowych:
7 0 0 1 0 2 0 4
poprawną odpowiedzią jest:
1 5 2 6 4 7 3
Dla danych wejściowych:
4 0 2 0 0
poprawną odpowiedzią jest:
NIE
Autor zadania: Krzysztof Diks.