- 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
- 1 \le n, q \le 2 \cdot 10^5
- 1 \le x_i, a, b \le n
Esimerkki
Syöte:
5 3 2 4 3 1 4 5 2 3 1 2 2
Tuloste:
3 -1 0