P2

Time limit: 1.1s Memory limit: 128MB Input: p2.in Output: p2.out

Considerând două numere naturale XX și YY , spunem că XX este prefix pentru YY , dacă XX se poate obține din YY prin ștergerea a 00, 11 sau mai multor cifre de la sfârșitul lui YY.
Exemple :

  • 10241024 este prefix pentru 10247890561024789056
  • 526526 este prefix pentru 526526

Se dau numerele naturale QQ, LL și apoi o succesiune de QQ interogări de următoarele 33 tipuri:

Tip interogare Semnificație
1 M Să se determine NN minim, NLN \leq L, astfel încât 2N2^N să aibă prefix pe MM (se garantează că pentru interogările date există un astfel de număr).
2 M N Să se verifice dacă MM este prefix pentru 2N2^N (răspunsul este 11 în caz afirmativ, respectiv 00 în caz contrar).
3 M A B Să se determine numărul de valori N (ANB)N \ (A \leq N \leq B), astfel încât MM este prefix pentru 2N2^N.

unde M,N,AM, N , A și BB sunt numere naturale.

Cerință

Date fiind Q,LQ, L şi o succesiune de QQ interogări, să determine răspunsurile pentru interogările date.

Date de intrare

Fişierul de intrare p2.in conţine pe prima linie numerele naturale QQ și LL, separate prin spaţiu.
Pe următoarele QQ linii sunt scrise cele QQ interogări, câte o interogare pe o linie, în forma descrisă în tabel.

Date de ieșire

Fişierul de ieşire p2.out va conţine QQ linii.
Pe linia ii va fi scris răspunsul pentru cea de a ii-a interogare din fișierul de intrare.

Restricții și precizări

  • 1Q100 0001 \leq Q \leq 100 \ 000
  • 1L1 000 0001 \leq L \leq 1 \ 000 \ 000
  • 0M999 9990 \leq M \leq 999 \ 999
  • 0NL0 \leq N \leq L
  • 0ABL0 \leq A \leq B \leq L
# Punctaj Restricții
1 24 Fișierul de intrare conține numai interogări de tipul 11 și 1L,Q100 0001 \leq L, Q \leq 100 \ 000.
2 24 Fișierul de intrare conține numai interogări de tipul 22 și 1L,Q100 0001 \leq L, Q \leq 100 \ 000.
3 24 Fișierul de intrare conține numai interogări de tipul 33 și 1L,Q100 0001 \leq L, Q \leq 100 \ 000.
4 16 1L,Q100 0001 \leq L, Q \leq 100 \ 000.
5 12 Fără restricții suplimentare

Exemplu

p2.in

4 13
1 8
2 81 13
2 64 7
3 1 0 13

p2.out

3
1
0
4

Explicație

Valorile pentru 202^0, 212^1,..., 2132^{13} sunt 11, 22, 44, 88, 1616, 3232, 6464, 128128, 256256, 512512, 1 0241 \ 024, 2 0482 \ 048, 4 0964 \ 096, 8 1928 \ 192.
Pentru prima interogare avem M=8M=8, iar cel mai mic N13N \leq 13 cu prefix egal cu 88 pentru 2N2^N este 33, 23=82^3 = 8.
Pentru a doua interogare avem M=81M=81 și N=13N=13 și deoarece 213=8 1922 ^ {13} = 8 \ 192 avem rezultatul 11.
Pentru a treia interogare avem M=64M=64 și N=7N=7 și deoarece 27=1282 ^ 7 = 128, avem că rezultatul este 00.
Pentru a patra interogare avem M=1M=1, A=0A=0 și B=13B=13, iar valorile lui NN pentru care 11 apare ca prefix în 2N2^N sunt 00, 44, 77, 1010 deci răspunsul este 44.

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