Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024
Problem description
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 = ((K⋅Ansi − 1)⊕Ai)
Ri = ((K⋅Ansi − 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 | |
|
|