ZADANIE: Wektor inwersji

advertisement
ZADANIE: Wektor inwersji
Dla każdej permutacji zbioru liczb naturalnych {1, 2, ..., N−1, N} można wyznaczyć tzw. wektor inwersji.
Wystarczy dla każdej liczby (elementu permutacji) zliczyć, ile przed nią występuje liczb większych od niej. Na
przykład dla permutacji:
1 2 3 4 5
wektor inwersji ma postać:
0 0 0 0 0
bo przed żadną liczbą nie występują liczby większe od niej. Z kolei dla permutacji:
3 2 1 5 4
wektor inwersji ma postać:
0 1 2 0 1
ponieważ przed 2 jest jedna większa liczba (3), przed jedynką − dwie (3, 2), przed piątką żadna, przed czwórką −
jedna (5).
Napisz program, który czyta dodatnią liczbę naturalną N, po czym czyta N liczb naturalnych, tworzących wektor
inwersji pewnej permutacji. Twój program powinien wypisać tę permutację.
Dane wejściowe
Pierwszy wiersz zawiera liczbę całkowitą N oznaczającą ilość elementów permutacji (1 ≤ N ≤ 1000). Następny
wiersz zawiera N liczb naturalnych oznaczających elementy wektora inwersji. Liczby w wierszu oddzielone są
pojedynczymi odstępem.
Wynik programu
Program powinien wypisać wiersz tekstu zawierający liczby naturalne od 1 do N w permutacji odpowiadającej
wczytanemu wektorowi inwersji.
Przykładowy rezultat
Na przykład dla danych wejściowych:
4
0 1 1 1
program powinien wypisać:
4 1 2 3
Download