Code Submission Evaluation System Login

Algoritmit ongelmanratkaisussa 2019

Planeetat II


Task | Statistics


CSES - Planeetat IICSES - Planeetat II

Time limit:1.00 s Memory limit:512 MB

Pelaat peliä, jossa on $n$ planeettaa ja jokaisella planeetalla on teleportti jollekin planeetalle.

Tehtäväsi on käsitellä $q$ kyselyä muotoa: kun aloitat planeetalta $a$, montako askelta tarvitset vähintään, jotta pääset planeetalle $b$?

Syöte

Syötteen ensimmäisellä rivillä on kaksi kokonaislukua $n$ ja $q$: planeettojen määrä ja kyselyiden määrä. Planeetat on numeroitu kokonaisluvuin $1,2,\dots,n$.

Seuraavalla rivillä on $n$ kokonaislukua $x_1,x_2,\dots,x_n$: kunkin teleportin kohde. On mahdollista, että $x_i=i$ eli teleportti johtaa samalle planeetalle.

Lopuksi syötteessä on $q$ riviä, jotka kuvaavat kyselyt. Jokaisella rivillä on kaksi kokonaislukua $a$ ja $b$: aloitat planeetalta $a$ ja haluat päästä planeetalle $b$.

Tuloste

Tulosta jokaiseen kyselyyn vastauksena pienin askelten määrä, jolla pääset planeetalta $a$ planeetalle $b$. Jos tämä ei ole mahdollista, tulosta $-1$.

Rajat
Esimerkki

Syöte:
5 3
2 4 3 1 4
5 2
3 1
2 2


Tuloste:
3
-1
0