Portaler | 프로그래밍의 벗 PivotOJ
PivotOJ

Portaler

시간 제한: 1000ms메모리 제한: 1024MB출처: Programmeringsolympiaden 2015 — onlinekvalBOJ 26888
이 문제는 본문 이미지 일부가 표시되지 않습니다. 텍스트만으로 풀이가 어려울 수 있습니다.

문제

Det nya företaget Sveriges Portaltrafik vill revolutionera hur svenska pendlare tar sig runt i landet. Företaget har lagt fram ett banbrytande förslag på hur ett portalsystem ska byggas i Sverige, för att ersätta tåg, flyg och busstrafik med bränslesnåla portaler. Regeringen har nu fått i uppdrag att granska förslaget i detalj, och vädjar till svenska elitprogrammerare om hjälp. Det är här du kommer in i bilden.

Du har fått ta del av en ritning av portalsystemet för att analysera det. Portalsystemet består av NN portaler utplacerade på olika platser i landet. Varje portal aa har en viss destinationsportal bb. Det betyder att varje gång man går in i aa så kommer man ut ur bb. Notera att man inte nödvändigtvis kommer tillbaka till aa när man går in i bb. Sveriges Portaltrafiks nya idé är att genom att låta resenärer gå i en portal och sedan upprepade gånger gå in i portalen man dyker upp vid så kommer man snabbt kunna ta sig runt i landet.

Regeringen vill nu veta för ett antal givna start- och slutportaler aa och bb hur många gånger man behöver gå in i portalen man dyker upp vid för att ta sig från aa till bb -- eller om det ens är möjligt. För varje sådan förfrågning ska du svara med antalet gånger man behöver gå in i portalerna för att ta sig från aa till bb. Om det är omöjligt så ska du svara 1-1.

Hjälp regeringen!

입력

På första raden i indata står heltalet NN, antalet portaler som kommer att placeras ut i landet. Sedan följer NN rader med tal 1diN1 \le d_i \le N som beskriver att portalen på rad ii leder till portal did_i. Portalerna är ett-indexerade (den lägsta har nummer 1, den högsta har nummer NN), och kommer i ordning från 11 till NN i indata.

Sedan följer en rad med ett heltal QQ, antalet förfrågningar som du måste svara på. Efter det följer QQ rader med två heltal 1s,eN1 \le s, e \le N. Dessa tal beskriver nummer på en startportal ss och en slutportal ee, och ditt uppdrag är att svara på hur många gånger man behöver gå igenom portalerna för att ta sig till ee när man börjar vid ss. För varje förfrågan gäller ses \neq e.

출력

Du ska skriva ut QQ rader, ett tal per förfrågan: antalet gånger man behöver gå igenom portalerna för att ta sig från den givna startportalen till slutportalen. Om det är omöjligt så skriver du ut 1-1. Skriv ut svaret för varje förfrågan på en separat rad.

힌트

[이미지 1]

En illustration av Sample Input 1.

Nätverket i exempelfallet ser ut som i figuren. Vi får tre stycken förfrågningar. Den första undrar hur många gånger vi behöver gå in i portalerna när vi börjar vid 11 och vill hamna vid 22. Eftersom man direkt hamnar vid 22 när man går in i 11 så är svaret 11. För att ta sig från 11 till 44 så krävs tre hopp. För den sista förfrågan är svaret 1-1, eftersom vi aldrig kan ta oss från 22 till 55, oavsett hur länge vi går igenom portalerna.

예제

예제 1

입력
5
2
3
4
3
4
3
1 2
1 4
2 5
출력
1
3
-1
코드를 제출하려면 로그인하세요.