Tagy: binárne vyhľadávanie
Obtiažnosť: easy

Nájdi číslo

Na vstupe máte usporiadanú (od najmenšieho po najväčšie) postupnosť $n$ prvkov. Ďalej nasleduje $q$ otázok, každá sa pýta, na ktorej pozícii sa v tomto poli nachádza číslo $x$. Vypíšte túto pozíciu alebo −1, ak sa tam číslo nenachádza.

Vstup

Na prvom riadku je číslo $n \, (1 \leq n \leq 10^5)$ - počet čísel v postupnosti. Na druhom riadku je $n$ rôznych celých čísel z rozsahu $1$ až $10^9$ určujúce postupnosť.

Nasleduje číslo $q \, (1 \leq q \leq 10^5)$ - počet otázok. Posledných $q$ riadkov určuje jednotlivé otázky. Všetky otázky sú opäť v rozsahu $1$ až $10^9$.

Výstup

Na každú otázku vypíšte na samostatný riadok odpoveď - pozíciu, kde sa dané číslo nachádza vo vstupnom poli alebo −1, ak sa nenachádza. Pozície sú číslované od $0$ po $n-1$.

Tu máte zaujímavosť ktorá vám môže pomôcť pri programovaní: Štandardne sa pri vypisovaní robí optimalizácia, kedy sa text naozaj vypíše až keď sa ho nazbiera dostatok -- povedzme aspoň 100 znakov. Toto sa volá bufferovanie a robí sa to, lebo vypísať reťazec zahŕňa určitú réžiu, ktorá sa musí udiať bez ohľadu na dĺžku vypísaného textu. Preto je rýchlejšie vypísať celú vetu naraz namiesto vypisovania slova po slove. O toto sa na pozadí za nás postará každý programovací jazyk a keď sa textu nazbiera dosť, vykoná sa flush. Ak však chce program načítať vstup, musí sa najprv vypísať všetok doterajší nabufferovaný text flushnúť. Preto vie byť veľmi pomalé, ak striedame veľa krátkych vstupov a výstupov (tak ako by ste to možno spravili aj v tejto úlohe). Kód sa dá zrýchliť ak najprv načítate celý vstup a až potom začnete vypisovať.

Príklady

Vstup

Výstup

5
1 2 8 9 15
3
2
5
15
1
-1
4
Ak chceš riešiť túto úlohu, musíš sa najprv prihlásiť.