Towers

Time limit: 0.1s Memory limit: 64MB Input: towers.in Output: towers.out

Cerință

Avem un șir cu numere naturale nenule. Acestea reprezintă înălțimile unor turnuri așezate unul lângă altul în linie (nu lipite).
Ne punem întrebări de forma: pentru o valoare dată pp, daca trag orizontale înapoi (spre stânga) de undeva dintre pozițiile pp și p+1p+1, câte turnuri distincte pot atinge?

Pentru interogarea cu p=8p=8 observăm că se consideră atins doar turnul 88 (chiar dacă anterior este turnul 77 de aceeași înalțime cu el).

Date de intrare

Fișierul towers.in conține pe prima linie numărul nn. Pe linia a doua sunt nn numere naturale reprezentând înălțimile turnurilor, date în ordinea pozițiilor de la 11 la nn.
Pe linia următoare se află numărul de interogări kk. Pe următoarea linie se află cele kk valori pp cu semnificația de mai sus.

Date de ieșire

Fișierul towers.out conține pe prima linie kk numere, reprezentând răspunsul pentru fiecare interogare, în ordinea în care ele apar în fișierul de intrare.

Restricții și precizări

  • 1n100 0001 \leq n \leq 100 \ 000;
  • 1k100 0001 \leq k \leq 100 \ 000;
  • Înălțimile turnurilor sunt numere naturale nenule de maxim 99 cifre.
  • 1pn;1 \leq p \leq n; în cazul p=np=n considerăm drepte trase de oriunde de după ultimul turn.

Exemplu

towers.in

8
3 2 6 1 4 2 5 5
2
6 8

towers.out

3 2

Log in or sign up to be able to send submissions!