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.