Se dă un șir de numere în care primele două numere sunt egale cu , iar restul sunt din mulțimea și formează o permutare. Ne dorim să ordonăm crescător acest șir. În acest scop, se pot efectua interschimbări. O interschimbare este specificată printr-o poziție și are semnificația că secvența formată din numerele nenule se interschimbă cu secvența . Interschimbarea va păstra ordinea dintre elementele nenule implicate și .
Cerință
Scrieți un program care, cunoscând șirul, determină o succesiune de interschimbări care conduc la ordonarea crescătoare a elementelor șirului.
Date de intrare
Fișierul de intrare sortare00.in conține pe prima linie numărul natural , reprezentând numărul numerelor nenule din șirul dat. Pe linia a doua se află cele numere nenule, reprezentând permutarea, separate prin câte un spațiu.
Date de ieșire
Fișierul de ieșire sortare00.out conține pe prima linie numărul de interschimbări efectuate pentru a obține șirul ordonat crescător, iar pe linia a doua sunt scrise interschimbările separate prin câte un spațiu.
Restricții și precizări
- Numărul de interschimbări efectuate trebuie să fie
- Pentru datele de test se garantează că există soluție.
- Dacă interschimbările din fișierul de ieșire conduc la sortarea crescătoare a elementelor șirului, punctajul primit va fi diferențiat pe baza numărului de interschimbări efectuate, astfel:
- dacă , atunci se acordă punctajul maxim pe test
- dacă , atunci se acordă din punctajul maxim pe test
- dacă , atunci se acordă din punctajul maxim pe test
- în rest pentru atunci se acordă din punctajul maxim pe test.
| # | Punctaj | Restricții |
|---|---|---|
| 1 | 32 | |
| 2 | 68 | Fără restricții suplimentare |
Exemplu
sortare00.in
5
3 2 1 5 4
sortare00.out
7
3 1 4 2 5 3 0
Explicație
Cele interschimbări efectuate conduc la sortarea elementelor șirului: