inghetata

Time limit: 0.5s Memory limit: 64MB Input: inghetata.in Output: inghetata.out

În clasa lui Ionuț sunt NN elevi numerotați cu numere naturale de la 11 la NN așezați în ordinea din catalog. Fiecare elev ii (1iN1 \le i \le N) are ceea ce se numește un coeficient de popularitate AiA_i, un număr natural nenul. Fiecare elev din clasă are un grup de simpatizanți. Grupul de simpatizanți ai elevului ii, notat cu GiG_i, este reprezentat de cea mai lungă secvență de elevi din șirul dat în catalog, care îl conține pe elevul ii, astfel încât coeficientul de popularitate ai fiecărui elev jj din secvență, AjA_j, să fie divizor al lui AiA_i. Lungimea secvenței, deci numărul elevilor din grupul de simpatizanți ai lui ii, se notează cu Gi|G_i|. Evident, elevul ii face parte din propriul său grup de simpatizanți. Dacă elevul ii face parte din grupul de simpatizanți ai elevului jj, atunci nu este neapărat necesar ca și jj să facă parte din grupul de simpatizanți al elevului ii.

După ore, unii elevi își invită la cofetărie grupul de simpatizanți, pentru câte o înghețată. Pentru un grup de simpatizanți GiG_i, elevul ii merge și îi cere vânzătoarei exact Gi|G_i| înghețate, dar vânzătoarea are o fire năstrușnică și îi spune că este disponibil doar un anumit număr de arome kk, mereu cel mult egal cu numărul de înghețate cerute (1kGi1 \le k \le |G_i|). Elevii, creativi, calculează numărul de moduri în care se poate cumpăra înghețată pentru grup, astfel încât să achiziționeze fiecare sortiment cel puțin o dată; pentru grupul GiG_i, acest număr se notează cu vi(k)v_i(k).

Cerință

  1. Determinați numărul de ordine din catalog al elevului care are cel mai numeros grup de simpatizanți. Se garantează că există un singur astfel de elev.
  2. Lui Ionuț îi place foarte mult să analizeze vânzările magazinelor de înghețată și vă lansează QQ întrebări de tipul: (i,st,dr)(i, st, dr) (cu 1iN1 \le i \le N și 1stdrGi1 \le st \le dr \le |G_i|); pentru fiecare determinați valoarea expresiei: vi(st)+vi(st+1)++vi(dr)v_i(st) + v_i(st + 1) + \cdots + v_i(dr); cum valoarea poate fi foarte mare, luați în considerare restul împărțirii ei la 109+710^9 + 7.

Date de intrare

Fișierul de intrare inghetata.in conține pe prima linie un număr natural CC, care indică cerința ce trebuie rezolvată (C=1C = 1 sau C=2C = 2), pe a doua linie numărul NN, reprezentând numărul de elevi din clasa lui Ionuț, iar pe următoarea linie se găsesc NN numere naturale A1,A2,,ANA_1, A_2, \ldots, A_N, reprezentând coeficienții de popularitate ai colegilor lui Ionuț. Dacă C=2C = 2, în continuarea datelor precizate, începând cu următoarea linie, fișierul conține QQ, numărul de întrebări, iar pe următoarele QQ linii câte 33 numere naturale ii, stst și drdr cu semnificația din enunț. Numerele de pe aceeași linie sunt separate prin câte un spațiu.

Date de ieșire

Dacă C=1C = 1, atunci fișierul de ieșire inghetata.out va conține, pe o singură linie numărul determinat la cerința 11.

Dacă C=2C = 2, atunci fișierul de ieșire inghetata.out va conține cele QQ valori determinate la cerința 22, fiecare număr pe câte o linie a fișierului în ordinea întrebărilor corespunzătoare.

Restricții și precizări

  • 1N200 0001 \le N \le 200 \ 000;
  • 1Ai1091 \le A_i \le 10^9 pentru orice i=1,,Ni = 1, \ldots, N;
  • 1Q200 0001 \le Q \le 200 \ 000;
  • 0drst600 \le dr - st \le 60 pentru fiecare din cele QQ întrebări.
# Punctaj Restricții
1 60 C=1C = 1 și 1N1 0001 \le N \le 1 \ 000
2 4 C=2C = 2 și 1N5001 \le N \le 500 și 1Q5001 \le Q \le 500
3 4 C=2C = 2 și 1N2 0001 \le N \le 2 \ 000 și 1Q2 0001 \le Q \le 2 \ 000 și st=drst = dr pentru fiecare dintre cele QQ întrebări
4 3 C=2C = 2 și A1=A2==ANA_1 = A_2 = \cdots = A_N
5 9 C=2C = 2 și AiA_i este putere a lui 22 pentru orice i=1,2,,Ni = 1, 2, \ldots, N
6 3 C=2C = 2 și 1stdrmin(2,Gi)1 \le st \le dr \le \min(2, \|G_i\|) pentru fiecare din cele QQ întrebări
7 4 C=2C = 2 și max(1,Gi1)stdrGi\max(1, \|G_i\| - 1) \le st \le dr \le \|G_i\| pentru fiecare din cele QQ întrebări
8 13 C=2C = 2

Exemplul 1

inghetata.in

1
5
1 9 3 3 1

inghetata.out

2

Explicație

Pentru primul exemplu, C=1C = 1, deci se rezolvă prima cerință. G1={1}G_1 = \{1\} (în stânga nu mai sunt elevi, iar în dreapta 99 nu este divizor al lui 11), G2={1,2,3,4,5}G_2 = \{1, 2, 3, 4, 5\} (toate numerele din șir sunt divizori ai lui 99, deci grupul de simpatizanți ai lui 22 este format din toți elevii), G3={3,4,5}G_3 = \{3, 4, 5\} (în stânga, 99 nu este divizor al lui 33, iar în dreapta 33 și 11 sunt divizori ai lui 33), G4={3,4,5}G_4 = \{3, 4, 5\} (în stânga, 33 este divizor al lui 33, dar 99 nu este divizor al lui 33, iar în dreapta 11 este divizor al lui 33), G5={5}G_5 = \{5\} (în stânga 33 nu este divizor al lui 11, iar în dreapta nu mai sunt elevi). Așadar numărul de ordine al elevului cu cel mai numeros grup de simpatizanți este 22.

Exemplul 2

inghetata.in

2
10
1 2 2 4 4 8 8 3 1 3
2
10 1 2
4 3 3

inghetata.out

3
6

Explicație

Pentru al doilea exemplu, C=2C = 2, deci se rezolvă a doua cerință. Pentru prima întrebare G10={8,9,10}G_{10} = \{8, 9, 10\} și se calculează v10(1)+v10(2)v_{10}(1) + v_{10}(2). Dacă vânzătoarea le spune că la magazin se vinde o singură aromă (k=1k = 1), atunci este un singur mod de a face cumpărături, anume aceeași aromă pentru toate înghețatele achiziționate. Dacă se vând două arome (k=2k = 2), de exemplu ciocolată și vanilie, atunci sunt două posibilități: prima variantă cu una de ciocolată și două de vanilie și a doua variantă cu două de ciocolată și una de vanilie. Deci v10(1)=1v_{10}(1) = 1, v10(2)=2v_{10}(2) = 2 și v10(1)+v10(2)=3v_{10}(1) + v_{10}(2) = 3.

Pentru a doua întrebare G4={1,2,3,4,5}G_4 = \{1, 2, 3, 4, 5\}. Dacă vânzătoarea le spune că se vând trei arome (k=3k = 3), de exemplu ciocolată, vanilie și mentă, sunt 66 posibilități, deci v4(3)=6v_4(3) = 6:

  1. una de ciocolată, una de vanilie, trei de mentă;
  2. una de ciocolată, două de vanilie, două de mentă;
  3. una de ciocolată, trei de vanilie, una de mentă;
  4. două de ciocolată, una de vanilie, două de mentă;
  5. două de ciocolată, două de vanilie, una de mentă;
  6. trei de ciocolată, una de vanilie, una de mentă.

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