Operatii

Time limit: 0.15s Memory limit: 32MB Input: operatii.in Output: operatii.out

John este pasionat de șiruri de numere și de operații matematice pe intervale. El se confruntă cu următoarea problemă: se dă un șir AA format din NN numere naturale strict pozitive și QQ interogări, fiecare fiind de tipul 11 sau tipul 22.

Interogare de tip 1: Pentru o pereche (ST,Vmax)(ST, V_{\text{max}}), unde STST este indicele de start și VmaxV_{\text{max}} este o valoare limită, se cere cel mai mare indice DRDR (STDRNST \le DR \le N) astfel încât produsul elementelor din secvența A[STDR]A[ST \dots DR] să fie mai mic sau egal cu VmaxV_{\text{max}}:

A[ST]A[ST+1]A[DR]VmaxA[ST] \cdot A[ST+1] \cdot \dots \cdot A[DR] \le V_{\text{max}}

Dacă A[ST]>VmaxA[ST] > V_{\text{max}}, răspunsul pentru interogare este 1-1.

Interogare de tip 2: Pentru o pereche (ST,Vmin)(ST, V_{\text{min}}), unde STST este indicele de start și VminV_{\text{min}} este o valoare limită, se cere cel mai mare indice DRDR (STDRNST \le DR \le N) astfel încât rezultatul operației AND pe biți aplicate asupra tuturor elementelor secvenței A[STDR]A[ST \dots DR] să fie mai mare sau egal cu VminV_{\text{min}}:

(A[ST]&A[ST+1]&&A[DR])Vmin(A[ST] \mathbin{\&} A[ST+1] \mathbin{\&} \dots \mathbin{\&} A[DR]) \ge V_{\text{min}}

Dacă A[ST]<VminA[ST] < V_{\text{min}}, răspunsul pentru interogare este 1-1.

Date de intrare

Prima linie conține două numere naturale NN și QQ, separate printr-un spațiu. A doua linie conține NN numere naturale separate prin spații, reprezentând elementele șirului AA.

Fiecare dintre următoarele QQ linii conține câte trei numere naturale: tipul interogării TT (T{1,2}T \in \{1, 2\}), indicele de start STST și valoarea limită LL (reprezentând VmaxV_{\text{max}} pentru interogările de tip 11, respectiv VminV_{\text{min}} pentru interogările de tip 22).

Date de ieșire

Fișierul de ieșire va conține QQ linii. Linia ii va conține răspunsul pentru a ii-a interogare: un număr natural reprezentând indicele maxim DRDR, sau 1-1 dacă nu există niciun indice valid care să respecte condiția.

Restricții și precizări

  • 1N100 0001 \le N \le 100 \ 000
  • 1Q50 0001 \le Q \le 50 \ 000
  • 1A[i]1091 \le A[i] \le 10^9 pentru orice 1iN1 \le i \le N
  • 1Vmax10181 \le V_{\text{max}} \le 10^{18} pentru interogările de tip 11
  • 0Vmin1090 \le V_{\text{min}} \le 10^9 pentru interogările de tip 22
# Puncte Restricții
1 16 Apar doar interogări de tip 11; N,Q1.000N, Q \le 1.000; produsul elementelor pe orice interval nu depășește 101810^{18}
2 17 Apar doar interogări de tip 11; fără restricții suplimentare
3 16 Apar doar interogări de tip 22; N,Q1.000N, Q \le 1.000
4 17 Apar doar interogări de tip 22; fără restricții suplimentare
5 34 Apar interogări de tip 11 și tip 22; fără restricții suplimentare

Exemplul 1

operatii.in

5 5
12 4 15 5 3
1 1 50
1 2 100
1 3 4
2 2 5
2 3 4

operatii.out

2
3
-1
-1
4

Explicații

Șirul este A=[12,4,15,5,3]A = [12, 4, 15, 5, 3].

Interogarea 1 (tip 11, ST=1ST=1, Vmax=50V_{\text{max}}=50): A[1]=1250A[1] = 12 \le 50, valid; A[1]A[2]=124=4850A[1] \cdot A[2] = 12 \cdot 4 = 48 \le 50, valid; A[1]A[2]A[3]=4815=720>50A[1] \cdot A[2] \cdot A[3] = 48 \cdot 15 = 720 > 50, invalid. Indicele maxim DRDR este 2.

Interogarea 2 (tip 11, ST=2ST=2, Vmax=100V_{\text{max}}=100): A[2]=4100A[2] = 4 \le 100, valid; A[2]A[3]=415=60100A[2] \cdot A[3] = 4 \cdot 15 = 60 \le 100, valid; A[2]A[3]A[4]=605=300>100A[2] \cdot A[3] \cdot A[4] = 60 \cdot 5 = 300 > 100, invalid. Indicele maxim DRDR este 3.

Interogarea 3 (tip 11, ST=3ST=3, Vmax=4V_{\text{max}}=4): A[3]=15>4A[3] = 15 > 4. Se afișează -1.

Interogarea 4 (tip 22, ST=2ST=2, Vmin=5V_{\text{min}}=5): A[2]=4<5A[2] = 4 < 5. Se afișează -1.

Interogarea 5 (tip 22, ST=3ST=3, Vmin=4V_{\text{min}}=4): A[3]=154A[3] = 15 \ge 4, valid; A[3]&A[4]=15&5=54A[3] \mathbin{\&} A[4] = 15 \mathbin{\&} 5 = 5 \ge 4, valid; A[3]&A[4]&A[5]=5&3=1<4A[3] \mathbin{\&} A[4] \mathbin{\&} A[5] = 5 \mathbin{\&} 3 = 1 < 4, invalid. Indicele maxim DRDR este 4.

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