dorel

Time limit: 0.3s Memory limit: 64MB Input: dorel.in Output: dorel.out

Îl cunoașteți pe Dorel cel ”priceput” la toate. Acesta și-a propus să ”strice” armonia unui șir SS format din NN caractere litere mică ale alfabetului englez, SS = (S1,S2,,SN)(S_1, S_2, \dots,S_N).

El alege la întâmplare un caracter din șir, caracter aflat pe poziția k (1kN)k \ (1 \leq k \leq N) și caută în stânga lui kk primul caracter mai mare sau egal cu SkS_k, fie acesta aflat pe poziția ii, SkSiS_k \leq S_i. Dacă acesta nu există, i=1i = 1. Această alegere nu este suficientă. Dorel caută în dreapta lui kk primul caracter mai mic sau egal cu SkS_k, fie acesta pe poziția jj, SjSkS_j \leq S_k. Dacă acesta nu există, j=Nj = N. Extrage din șirul SS subșirul astfel delimitat. Ca urmare a alegerii făcute, Dorel obține două subșiruri:

  • X=(S1,S2,,Si1,Sj+1,Sj+2,,SN)X = (S_1, S_2, \dots, S_{i-1}, S_{j+1}, S_{j+2}, \dots, S_N)
  • Y=(Si,Si+1,,Sj)Y = (S_i, S_{i+1}, \dots, S_j)

Cerinţă

Cunoscând șirul SS, ajutați-l pe Dorel să răspundă la QQ întrebări de forma:

  • Pentru o poziție kk din șirul SS să se determine lungimea maximă a unei subsecvențe palindromice comune șirurilor XX și YY.

Date de intrare

Fişierul de intrare dorel.in conţine pe prima linie un șir de caractere. Pe cea de-a doua linie o valoare naturală nenulă QQ. Pe următoarea linie cele QQ întrebări în formatul precizat în enunț.

Date de ieșire

Fişierul de ieşire dorel.out va conține răspunsurile la cele QQ întrebări.

Restricții și precizări

  • 1N10 0001 \leq N \leq 10 \ 000
  • 1Q5 0001 \leq Q \leq 5 \ 000
  • NQ5 000 000N \cdot Q \leq 5 \ 000 \ 000
  • XX și YY sunt șiruri nevide
  • prin subsecvență palindromică a unui șir înțelegem o succesiune de caractere aflate pe poziții consecutive în șir care este palindrom (subsecvența parcursă de la stânga la dreapta este identică cu secvența parcursă de la dreapta la stânga).
  • lungimea maximă a unei subsecvențe palindromice comune 1 000\leq 1 \ 000

Exemplul 1

dorel.in

xexxxdexxexaegf
4
6 8 15 3

dorel.out

4 2 0 3

Explicație

Răspunsul la cele 44 întrebări

XX = xexxegf, YY = xdexxexa.
Subsecvența palindromică comună = exxe având lungimea = 44

XX = xexxexaegf, YY = xdexx
Subsecvența palindromică comună = xx având lungimea = 22

XX = xexxxdexxexae, YY = gf
Subsecvența palindromică comună = având lungimea = 00

XX = xdexxexaegf, YY = xexx
Subsecvența palindromică comună = xex având lungimea = 33

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