RAU-Gigel este pasionat de grafică, așa că se gândește să vă facă un cadou de 1 Iunie: un joc cu imagini. El creează într-un editor grafic o imagine bitmap binară de dimensiuni pixeli. O imagine bitmap binară este o matrice de pixeli, fiecare pixel fiind un bit. Să considerăm că valoarea (nesetat) înseamnă alb și valoarea (setat) înseamnă negru. Apoi RAU-Gigel împarte imaginea în patru imagini pătrate egale de latură pe care le notează de la la ( este imaginea din colțul dreapta-sus, este cea din colțul dreapta-jos, stânga-jos și stânga-sus). El repetă procedeul pentru fiecare dintre cele imagini obținute, și tot așa, reducând mereu latura la jumătate și notând direcțiile de la la , până când ajunge la imagini de mărimea unui pixel.
Pentru simplitate, să presupunem că este o putere a lui , să spunem . Deci, după împărțiri succesive de imagini, orice pixel poate fi identificat printr-un șir unic format din cifrele , , și , de lungime .
De exemplu, dacă , atunci . Vom avea împărțiri succesive:
Inițial, imaginea este complet albă.
Acum începe jocul. RAU-Gigel se gândește la 2 tipuri de operaţii:
- Operaţia
1 x
schimbă starea pixelul identificat cu șirul , descris ca mai sus. Dacă pixelul nu este setat, îl setează. Dacă pixelul este deja setat, atunci îl resetează; - Operaţia
2 x
, unde are aceeași semnificație ca mai sus, este o interogare: dacă este setat, se răspunde cu . Dacă nu este setat, se cere determinarea dimensiunii celei mai mari imagini complet albe, dintre cele create de RAU-Gigel, care conține pixelul . Dimensiunea este dată de numărul de pixeli conținut.
Cerință
Dându-se cu semnificația de mai sus și , reprezentând numărul de operaţii şi cele operaţii de tipul 1 și 2, să se răspundă la operaţiile de tip 2.
Date de intrare
Fișierul de intrare pixeli.in
conține pe prima linie numerele naturale și separate cu un spațiu. Pe următoarele linii se află câte o cifră de sau și câte un string, de forma tip_operaţie x
, reprezentând tipul operaţiei şi șirul .
Date de ieșire
Fișierul de ieșire pixeli.out
va conține răspunsurile pentru operaţiile de tip 2, câte unul pe linie.
Restricții și precizări
- În toate testele, este o putere a lui .
- Toate șirurile sunt corect definite.
- Pentru teste în valoare de 30 de puncte, și .
Exemplul 1
pixeli.in
4 11
1 11
1 22
2 22
2 33
2 44
2 24
1 22
2 22
2 24
1 11
2 44
pixeli.out
0
4
4
1
4
4
16
Explicație
Inițial imaginea este albă:
După primele 2 operații de tip 1, imaginea va conține:
Următoarele 4 interogări vor referi, în ordine, pixelii marcati cu a
, b
, c
, d
(imaginea de mai jos). Cum a
era setat, răspunsul este . Cea mai mare imagine albă, creată de RAU-Gigel, care conține b
, este colțul stânga-jos cu pixeli (bolduit). La fel pentru c
. În cazul pixelului d
, răspunsul este (chiar el).
Urmează o operație de tip 1 care resetează pixelul notat cu a
(șirul ). Următoarele 2 interogări pentru a
și d
generează răspunsurile , respectiv .
În final, se resetează și pixelul e
, iar ultima interogare, pentru c
, va determina răspunsul , toată imaginea fiind acum complet albă.
Exemplul 2
pixeli.in
8 9
1 111
1 222
2 222
2 333
2 444
2 242
1 222
2 222
2 242
pixeli.out
0
16
16
4
16
16