DisneyLand

Time limit: 1s Memory limit: 256MB Input: disneyland.in Output: disneyland.out

Cerință

Administrația DisneyLand a decis modernizarea sistemului de monitorizare. Rezervările și interogările sosesc acum în timp real, iar sistemul trebuie să ofere răspunsuri instantanee fără a cunoaște evenimentele viitoare.

Mai mult, pentru a proteja confidențialitatea datelor, coordonatele de timp din fișierul de intrare sunt criptate folosind răspunsul anterior.

Se primesc MM operațiuni de două tipuri:

  • Tip 1 (Rezervare): Se adaugă un grup de zz copii prezent în intervalul [x,y][x', y']. Se dau xin,yin,zinx_{in}, y_{in}, z_{in}.
  • Tip 2 (Interogare): Se cere numărul minim de paznici necesari la momentul de timp tt'. Se dă tint_{in}.

Fie LastAnsLastAns valoarea ultimului răspuns afișat (numărul de paznici de la ultima operație de tip 2). Inițial, LastAns=0LastAns = 0. Coordonatele reale se calculează astfel:

  • Pentru Tip 1: x=xinLastAnsx = x_{in} \oplus LastAns, y=yinLastAnsy = y_{in} \oplus LastAns, z=zinz = z_{in}. Intervalul real de vizită este [x,y][x', y'], unde x=min(x,y)x' = \min(x, y) și y=max(x,y)y' = \max(x, y).
  • Pentru Tip 2: t=tinLastAnst' = t_{in} \oplus LastAns.

Fiecare paznic poate supraveghea cel mult kk copii. La orice moment tt, numărul de paznici trebuie să acopere integral numărul de copii prezenți.

Date de intrare

Fișierul disneyland.in conține pe prima linie numerele întregi MM și kk.

Următoarele MM linii conțin descrierea operațiilor, fiecare linie având una dintre formele:

  • 1 xin yin zin1 \ x_{in} \ y_{in} \ z_{in} (operație de tip 1 — rezervare);
  • 2 tin2 \ t_{in} (operație de tip 2 — interogare)

Date de ieșire

Fișierul disneyland.out va conține răspunsul pentru fiecare operație de tip 2, pe câte o linie separată.

Restricții și precizări

  • 1M200 0001 \leq M \leq 200 \ 000
  • 0xin,yin,zin,tin10180 \leq x_{in}, y_{in}, z_{in}, t_{in} \leq 10^{18}
  • 1k,x,y,t1091 \leq k, x', y', t' \leq 10^9
  • \oplus reprezintă operația pe biți XOR.
  • Se garantează că toate valorile intermediare și răspunsurile finale se încadrează în tipul long long.
# Puncte Restricții
1 10 M2 000M \le 2 \ 000 și toate operațiile de Tip 1 sunt date înaintea celor de Tip 2
2 15 M2 000M \le 2 \ 000
3 20 x,y,t105x', y', t' \le 10^5 și toate operațiile de Tip 1 sunt date înaintea celor de Tip 2
4 25 x,y,t105x', y', t' \le 10^5
5 30 Fără restricții suplimentare

Exemplu

disneyland.in

4 3
1 4 8 5
2 5
1 1 5 4
2 7

disneyland.out

2
3

Explicație

În acest exemplu, k=3k=3 (un paznic la maximum 33 copii) și inițial LastAns=0LastAns = 0.

  • Operația 1 (Tip 1 - Rezervare): Se citesc xin=4x_{in}=4, yin=8y_{in}=8, zin=5z_{in}=5. x=40=4x = 4 \oplus 0 = 4, y=80=8y = 8 \oplus 0 = 8. Intervalul real de vizită este [4,8][4, 8] cu 55 copii.
  • Operația 2 (Tip 2 - Interogare): Se citește tin=5t_{in}=5. t=50=5t' = 5 \oplus 0 = 5. La momentul 55, este prezentă doar prima rezervare (5[4,8]5 \in [4, 8]). Sunt 55 copii în total. Rezultatul este 2, deci LastAnsLastAns devine 22.
  • Operația 3 (Tip 1 - Rezervare): Se citesc xin=1x_{in}=1, yin=5y_{in}=5, zin=4z_{in}=4. x=12=3x = 1 \oplus 2 = 3, y=52=7y = 5 \oplus 2 = 7. Intervalul real de vizită este [3,7][3, 7] cu 44 copii.
  • Operația 4 (Tip 2 - Interogare): Se citește tin=7t_{in}=7. t=72=5t' = 7 \oplus 2 = 5. La momentul real 55, sunt active ambele rezervări:
    • Prima rezervare: 5[4,8]    55 \in [4, 8] \implies 5 copii.
    • A doua rezervare: 5[3,7]    45 \in [3, 7] \implies 4 copii.
      Totalul de copii la momentul 55 este 5+4=95 + 4 = 9. Rezultatul este 33, deci LastAnsLastAns devine 33.

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