Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024

2020-2022 2023 Regulations Schedule RODO info Ranking

Problem description


Plakatowanie 2
(plakatowanie2)
Limit pamięci: 256 MB
Limit czasu: 3.00 s

Pamiętacie zadanie “Plakatowanie” z OI? Krzysztof jest w trakcie przygotowywania trudniejszej wersji tego zadania pod sparing. W zadaniu mamy dane N budynków stojących w szeregu jeden przy drugim, i–ty budynek jest reprezentowany przez prostokąt o szerokości Wi i wysokości Hi. Razem tworzą one długą ścianę, którą należy pokrywać plakatami. Plakaty są prostokątami, których boki są pionowe i poziome. Plakatów nie można ciąć, zginać, ani obracać; mogą one natomiast przybierać dowolne wymiary. Plakatowaniem nazwiemy całkowite pokrycie ściany plakatami, tak aby żaden plakat nie nachodził na siebie, ani nie wychodził poza obrys ściany. Należy szybko odpowiadać na zapytania o plakatowanie składające się z minimalnej liczby plakatów na segmencie ściany składającej się tylko i wyłącznie z budynków od Li–tego do Ri–tego.

Aby zadanie nie było za łatwe, Krzysztof postanowił w niektórych testach wymusić odpowiadanie na zapytania w podanej na wejściu kolejności, poprzez szyfrowanie zapytań. Zamiast liczb Li, Ri, na wejściu będą podane liczby K, Ai, Bi. Aby odzyskać wartości Li, Ri należy użyć następujących wzorów:
Li = ((KAnsi − 1)⊕Ai) Ri = ((KAnsi − 1)⊕Bi) gdzie oznacza operację XOR, a Ansi odpowiedź na i–te zapytanie. Uznajemy, że Ans0 = 0.

Pomóż Krzysztofowi z testowaniem poprzez napisanie rozwiązania do opisanego powyżej zadania.

Wejście

W pierwszym wierszu wejścia znajdują się trzy liczby naturalne N, Q, K opisujące odpowiednio liczbę budynków, liczbę zapytań oraz parametr służący do odszyfrowywania zapytań. W następnych N wierszach znajdują się opisy budynków, gdzie i–ty z nich zawiera liczby naturalne Wi, Hi oznaczające odpowiednio szerokość oraz wysokość i–tego budynku. W następnych Q wierszach znajdują się opisy zapytań, gdzie i–ty z nich zawiera liczby naturalne Ai, Bi, które po odszyfrowaniu oznaczają zapytanie na przedziale [Li,Ri].

Wyjście

Należy wypisać Q wierszy. W i–tym z nich ma się znaleźć odpowiedź na i–te zapytanie.

Ograniczenia

1 ≤ N, Q ≤ 500 000, 0 ≤ K ≤ 1, 1 ≤ Wi, Hi ≤ 109, 1 ≤ Li, Ri ≤ N, 1 ≤ Ai, Bi ≤ 2 ⋅ N.

Podzadania

Podzadanie Warunki Punkty
1 N, Q ≤ 5 000 30
2 N, Q ≤ 50 000, K = 0 20
3 N, Q ≤ 50 000 10
4 N, Q ≤ 500 000, K = 0 20
5 brak dodatkowych ograniczeń 20

Przykład

Wejście Wyjście
4 2 0
2 2
1 3
2 4
3 2
1 4
2 3
3
2