subsir

Time limit: 0.4s Memory limit: 128MB Input: subsir.in Output: subsir.out

Fie S=(S1,S2,,SNS = (S_1, S_2, \dots, S_N) un şir format din NN numere naturale mai mici decât 1010 şi xx un număr natural cu pp cifre, reprezentat în baza 1010 prin xx = x1x2xpx_1 x_2 \dots x_p. Observaţi că poziţiile din şirul SS sunt numerotate de la stânga la dreapta de la 11 la NN, iar cifrele numărului xx sunt numerotate de la stânga la dreapta de la 11 la pp (cifra pp fiind cifra unităţilor).

Vom spune că xx apare ca subșir în șirul SS dacă există pozițiile 1j1<j2<<jpN1 \leq j_1 < j_2 < \dots < j_p \leq N astfel încât să avem Sji=xiS_{j_i} = x_i pentru orice 1ip1 \leq i \leq p. De exemplu, pentru S=(2,3,7,9)S=(2,3,7,9), 2727 apare ca subșir în SS, dar 9393 nu apare ca subșir în SS.

Numim prefix de lungime jj al lui SS, secvența S1,S2,,SjS_1, S_2, \dots, S_j (secvenţa care începe la poziţia 11 şi se termină la poziţia jj).

Cerință

Scrieţi un program care, cunoscând şirul SS, rezolvă următoarele două cerinţe:

  1. fiind date NrNr perechi de forma x jx \ j, determină pentru fiecare pereche dacă numărul xx apare ca subșir în prefixul de lungime jj al lui SS şi afişează valoarea 11 în caz afirmativ, respectiv valoarea 00 în caz contrar;
  2. fiind date NrNr perechi de forma a ba \ b, determină şi afişează pentru fiecare pereche numărul de numere naturale din intervalul închis [a,ba, b] care apar ca subșir în șirul S.

Date de intrare

Fișierul de intrare subsir.in conține pe prima linie un număr natural CC care reprezintă cerinţa care urmează a fi rezolvată (11 sau 22). Pe a doua linie se află numărul natural NN. Pe a treia linie se află NN numere naturale mai mici decât 1010, S1,S2,,SNS_1, S_2, \leq, S_N, reprezentând elementele şirului SS. Pe linia a patra se află un număr natural NrNr care reprezintă numărul de perechi. Pe următoarele NrNr linii se află câte o pereche de numere naturale. Numerele scrise pe aceeaşi linie în fişierul de intrare sunt separate prin câte un spaţiu.

Date de ieșire

Fișierul de ieșire subsir.out va conține NrNr linii, pe cea de a ii-a linie fiind scris rezultatul pentru cea de a ii-a pereche dintre cele NrNr perechi din fişierul de intrare, conform cerinţei CC.

Restricții și precizări

  • 1N10 0001 \leq N \leq 10 \ 000;
  • 1Nr10 0001 \leq Nr \leq 10 \ 000;
  • 0x<1070 \leq x < 10^7;
  • 1jN1 \leq j \leq N;
  • 0ab<1070 \leq a \leq b < 10^7;
  • Pentru teste valorând 3030 de puncte cerinţa este 11.
  • Pentru teste valorând 7070 de puncte cerinţa este 22.

Exemplul 1

subsir.in

1
10
5 6 1 0 3 2 5 2 3 1
5
1 4
1 2
153 6
153 9
72 8

subsir.out

1
0
0
1
0

Explicație

Cerinţa este 11, deci trebuie să verificăm pentru fiecare dintre cele Nr=5Nr=5 perechi x jx \ j specificate dacă xx apare ca subşir în prefixul de lungime jj al lui SS.
Prima pereche este 1 41 \ 4. Numărul 11 apare ca subşir în prefixul 5 6 1 05 \ 6 \ 1 \ 0, deci se afişează 11.
A doua pereche este 1 21 \ 2. Numărul 11 nu apare ca subşir în prefixul 5 65 \ 6, deci se afişează 00.
A treia pereche este 153 6153 \ 6. Numărul 153153 nu apare în prefixul 5 6 1 0 3 25 \ 6 \ 1 \ 0 \ 3 \ 2, deci se va afişa 00.
A patra pereche este 153 9153 \ 9. De data aceasta numărul 153153 apare ca subşir în prefixul 5 6 1 0 3 2 5 2 35 \ 6 \ 1 \ 0 \ 3 \ 2 \ 5 \ 2 \ 3, deci se afişează 11.
A cincea pereche este 72 872 \ 8. Numărul 7272 nu apare ca subşir în niciun prefix al lui SS, deci nici în cel de lungime 88 și se va afişa 00.

Exemplul 2

subsir.in

2
10
5 6 1 0 3 2 5 2 3 1
3
0 20
40 105
81 99

subsir.out

11
15
0

Explicație

Cerinţa este 22, deci trebuie să determinăm pentru fiecare dintre cele Nr=3Nr = 3 perechi a ba \ b specificate câte numere naturale din intervalul [a,b][a, b] apar ca subşir în SS.
Pentru intervalul [0,20][0, 20] există 1111 numere, acestea fiind 0,1,2,3,5,6,10,11,12,13,150, 1, 2, 3, 5, 6, 10, 11, 12, 13, 15.
Pentru intervalul [40,105][40, 105] există 1515 numere, acestea fiind 50,51,52,53,55,56,60,61,62,63,65,101,102,103,10550, 51, 52, 53, 55, 56, 60, 61, 62, 63, 65, 101, 102, 103, 105.
Pentru intervalul [81,99][81, 99] răspunsul este 00, deoarece nu există niciun număr în acest interval care să fie subşir al lui SS.

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