Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2025
Problem description
- Pewnego jesiennego dnia Frymbulin miał ochotę na zupę grzybową. W związku z tym, że zupę grzybową gotuje się głównie z grzybów, wziął koszyczek i poszedł w głąb okolicznych lasów na grzyby.
- Podczas zbierania grzybów w lesie, Frymbulin potknął się, upadł i czubkiem nosa wbił się w mech. Kiedy w końcu udało mu się wydostać nos z niewoli, zobaczył, że pod nim znajduje się ruda żelaza.
Frymbulin przypomniał sobie wtedy o swoim zamiłowaniu do rozważań ciekawych operacji na ciągach. Niestety, jest jeszcze częściowo oszołomiony po wyjściu z opresji, w której się znalazł, dlatego tym razem rozważane przez niego operacje są nieco bezsensowne.
Dany jest ciąg długości N, składający się z elementów ponumerowanych od 1 do N.
Na ciągu zostanie wykonanych Q operacji, z których każda będzie jednego z dwóch typów:
1i r – operacja oznaczająca, że element na pozycji i zmienia swoją wartość na r.2l k – zapytanie o wynik poniższego procesu na przedziale naszego ciągu długości 2k, zaczynającym się od pozycji l i kończącym się na pozycji l + 2k − 1:- Proces będzie przebiegać w k krokach. Każdy krok zmniejsza długość ciągu o połowę. W danym kroku wartości są łączone w pary kolejnych (pierwsza i druga, trzecia i czwarta itd.), a następnie każda para jest zastępowana jedną wartością równą wartości bezwzględnej różnicy między nimi. Dokładniej, jeśli w jednej parze będą wartości A i B, to nowa wartość wyniesie |A−B|. Zauważ, że po k takich krokach pozostanie dokładnie jeden element. Wynikiem jest jego wartość.
Operacja typu 2 nie zmienia ciągu –
wszystkie kroki wykonywane są tylko abstrakcyjnie. Należy wypisać wynik
dla każdej operacji typu 2.
Wejście
W pierwszym wierszu znajdują się dwie liczby całkowite N i Q.
W następnym wierszu znajduje się N liczb całkowitych pi oznaczających elementy ciągu.
W kolejnych Q wierszach znajdują się opisy zapytań zgodnie z treścią zadania.
Wyjście
Dla każdego zapytania typu 2 należy wypisać końcową
wartość po wszystkich k
krokach.
Ograniczenia
2 ≤ N ≤ 200 000, 1 ≤ Q ≤ 200 000, 0 ≤ pi ≤ 109.
Dla zapytań typu 1 zachodzi 1 ≤ i ≤ N, 0 ≤ r ≤ 109.
Dla zapytań typu 2 zachodzi 1 ≤ l ≤ N, 1 ≤ l + 2k − 1 ≤ N.
Podzadania
| Podzadanie | Ograniczenia | Punkty |
|---|---|---|
| 1 | N, Q ≤ 1000 | 11 |
| 2 | Dla wszystkich zapytań typu
2 zachodzi 2k = N |
13 |
| 3 | pi ≤ 1 oraz dla
wszystkich zapytań typu 1 zachodzi r ≤ 1 |
16 |
| 4 | Brak zapytań typu 1 |
17 |
| 5 | Brak dodatkowych ograniczeń | 43 |
Testy przykładowe
| Wejście | Wyjście | |
|
|
| Wejście | Wyjście | |
|
|
| Wejście | Wyjście | |
|
|
Wyjaśnienie
W pierwszym zapytaniu pierwszego testu wartości będą się zmieniać następująco: (4,8,2,0) → (4,2) → (2)
W trzecim zapytaniu pierwszego testu wartości będą się zmieniać
następująco:
(8,2) → (6)