Se dă o permutare de numere. Un ciclu al permutării este un șir astfel încât , , , , . Un interval este bun dacă există un ciclu astfel încât fiecare număr să apară exact o dată în .
O interogare constă din două valori și , cu . Răspunsul este numărul minim de interschimbări ce trebuie aplicate asupra permutării inițiale astfel încât intervalul să devină bun. O interschimbare constă în a selecta două poziții și și a schimba valorile și între ele.
Atenție! Interogările sunt independente; adică, interschimbările aplicate pentru o interogare nu sunt păstrate la interogările ce urmează. Mai mult, pentru interogarea este voie să interschimbăm elemente din intervalul cu elemente din afara intervalului .
Cerință
Să se afișeze răspunsul pentru interogări.
Date de intrare
Fișierul de intrare perm.in
conține pe prima linie două numere și .
Pe a doua linie se vor afla valori reprezentând, în ordine, valorile .
Pe următoarele linii se vor afla câte două numere , separate printr-un spațiu, reprezentând câte o întrebare.
Date de ieșire
Fișierul de ieșire perm.out
trebuie să conțină linii, pe fiecare răspunsul pentru câte o interogare.
Restricții și precizări
# | Punctaj | Restricții |
---|---|---|
1 | 2 | |
2 | 11 | |
3 | 9 | |
4 | 18 | |
5 | 40 | |
6 | 20 | Fără restricții suplimentare |
Exemplu
perm.in
5 3
4 1 2 3 5
2 4
1 4
1 5
perm.out
1
0
1
Explicație
- Pentru a transforma intervalul într-un interval bun, este suficient să facem o singură interschimbare între poziția și poziția .
- Intervalul este deja bun, deci nu avem nevoie de nicio interschimbare.
- Pentru ultimul interval, avem nevoie de o singură interschimbare între poziția și poziția .