kinder

Time limit: 0.9s Memory limit: 128MB Input: kinder.in Output: kinder.out

Bunicuţa Miruna are NN nepoţei care sunt aşezaţi în linie şi sunt numerotaţi de la stânga spre dreapta, în ordine, cu numere naturale distincte de la 11 la NN. Deoarece se apropie Ziua Copilului, Miruna le-a cumpărat nepoţeilor mai multe ouă Kinder. Aceste ouă Kinder nu sunt toate la fel, ci sunt de MM tipuri (numerotate de la 11 la MM) şi două culori (00 - roşu şi 11 - albastru). Tipul oului precizează cât de gustos este oul (dacă tipul t1<t2t_1 < t_2, atunci un ou de tipul t1t_1 va fi mai gustos decât un ou de tipul t2t_2).
Miruna va efectua operaţii de următoarele 33 tipuri:

Tip Nume Format Efect
1 Update c t p nrc \ t \ p \ nr Copilul cc primeşte nr ouă de tip tt şi culoare pp
2 Update c tc \ t Copilul cc ia fiecare ou de tipul tt care este al său şi îl vopseşte în culoarea opusă (din 00 în 11 sau din 11 în 00)
3 Query a b p xa \ b \ p \ x Miruna se uită la ouăle de culoare pp care aparţin copiilor din intervalul [a,b][a, b] şi vrea să afle tipul celui de-al xx-lea cel mai gustos ou.

Cerinţă

Scrieţi un program care să efectueze în mod eficient toate operaţiile descrise.

Date de intrare

Fişierul de intrare kinder.in va conţine pe prima linie 33 numere naturale N M TN \ M \ T, reprezentând numărul de nepoţei, numărul de tipuri de ouă, respectiv numărul de operaţii ce vor fi efectuate. Pe fiecare dintre următoarele TT linii va fi descrisă câte o operaţie. Linia care descrie o operaţie începe cu un număr (11, 22 sau 33) care indică tipul operaţiei, urmat de 44, 22, respectiv 44 numere naturale conform formatului operaţiei. Valorile scrise pe aceeaşi linie sunt separate prin spaţiu.

Date de ieșire

Fişierul de ieşire kinder.out va conţine câte o linie pentru fiecare operaţie de tip 33 efectuată. Pe linia ii se află răspunsul pentru cea de a ii-a operaţie de tip 33 din fişierul de intrare.

Restricții și precizări

  • 1N50 0001 \leq N \leq 50 \ 000
  • 1M50 0001 \leq M \leq 50 \ 000
  • 1T50 0001 \leq T \leq 50 \ 000
  • Pentru operaţii de tipul 11: 1cN,1tM,0p1,1nr1 0001 \leq c \leq N, 1 \leq t \leq M, 0 \leq p \leq 1, 1 \leq nr \leq 1 \ 000
  • Pentru operatii de tipul 22: 1cN,1tM1 \leq c \leq N, 1 \leq t \leq M
  • Se garantează că nepotul cc are cel puţin un ou de tip tt
  • Pentru operaţii de tipul 33: 1abN,0p11 \leq a \leq b \leq N, 0 \leq p \leq 1
  • 1x1 \leq x \leq Numărul total de ouă de culoare pp pe care le deţin nepoţii din intervalul [a,b][a, b]
  • Se garantează că nepoţii din intervalul [a,b][a, b] deţin cel puţin un ou de culoare pp.

Exemplu

kinder.in

5 100 3
1 2 68 0 100
2 2 68
3 1 5 1 99

kinder.out

68

Explicație

Miruna are 55 nepoţi, ouă de 100100 de tipuri şi efectuează 33 operaţii.
La prima operaţie nepotul 22 primeşte 100100 de ouă de tip 6868 şi culoare 00
La a doua operaţie nepotul 22 vopseşte cele 100100 de ouă de tipul 6868 pe care le are în culoarea 11
La a treia operatie Miruna vede că al 9999-lea cel mai gustos ou de culoare 11 pentru nepoţii din intervalul [1,5][1, 5] are tipul 6868

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