BitBeat to rytmiczna gra komputerowa, w której gracz układa sekwencje dźwięków. Do dyspozycji ma N dźwięków ponumerowanych liczbami od 1 do N. Musi ułożyć z nich utwór rytmiczny, a zarazem nowatorski i różnorodny pod względem użytych tonów.
Każdy dźwięk ma przypisane dwie liczby: dla i-tego dźwięku są to Ai oraz Bi. Oznaczają one odpowiednio jego wysokość i punktację. Powiemy, że ciąg dźwięków d1, …, dk jest rytmiczny, jeśli Adi XOR1 Adi + 1> max(Adi, Adi + 1) dla każdego i < k. Gracz dostaje punkty za różne2 dźwięki występujące w ciągu. Konkretnie, jeśli w ciągu pojawia się dźwięk x, to gracz dodaje do swojego wyniku liczbę Bx. Za kolejne wystąpienia tego samego dźwięku nie otrzymuje dodatkowych punktów.
Jaś, który dostał tę wspaniałą grę za darmo na Epicu, zastanawia się teraz, od jakiego dźwięku powinien rozpocząć swój ciąg rytmiczny. Pomóż mu i napisz program, który dla każdego i od 1 do N wypisze maksymalną liczbę punktów, jaką może uzyskać, rozpoczynając swój ciąg od dźwięku i.
Wejście
W pierwszym wierszu wejścia znajduje się jedna liczba całkowita N oznaczająca liczbę dźwięków.
W drugim wierszu wejścia znajduje się N liczb całkowitych Ai, oddzielonych pojedynczymi odstępami, będących wysokościami kolejnych dźwięków.
W trzecim wierszu wejścia znajduje się N liczb całkowitych Bi, oddzielonych pojedynczymi odstępami, będących punktacją za kolejne dźwięki.
Wyjście
Wyjście powinno składać się z N linii.
W i-tej z nich powinna znaleźć się maksymalna liczba punktów możliwa do uzyskania z ciągu rytmicznego rozpoczynającego się od dźwięku i.
Ograniczenia
1 ≤ N ≤ 100 000.
1 ≤ Ai ≤ 230 − 1.
1 ≤ Bi ≤ 109.
Podzadania
| Podzadanie | Warunki | Punkty |
|---|---|---|
| 1 | N ≤ 200 | 13 |
| 2 | N ≤ 2000 | 18 |
| 3 | A1 = A2 = … = An | 4 |
| 4 | Liczby Ai są potęgami dwójki. | 7 |
| 5 | Ai ≤ 212 − 1 | 19 |
| 6 | Bez dodatkowych ograniczeń | 39 |
Przykład
| Wejście | Wyjście | Wyjaśnienie |
|
|
W tym przykładzie rytmiczne ciągi to dokładnie takie, w których dźwięk 1 może sąsiadować z dźwiękiem 2 (bo 2 XOR 1 = 3 > max(2, 1) = 2), oraz dźwięk 1 może sąsiadować z dźwiękiem 3 (z tego samego powodu). Dźwięk 2 nie może sąsiadować z dźwiękiem 3, bo 1 XOR 1 = 0 < 1. Ciągi maksymalizujące wynik to np: 1213, 213, 312. Ciągi te zawierają wszystkie dźwięki, więc dają maksymalny wynik. |
| Wejście | Wyjście | Wyjaśnienie |
|
|
W tym przykładzie nie istnieją rytmiczne ciągi o długości większej niż jeden. |
| Wejście | Wyjście | |
|
|
Operacja XOR jest opisana tutaj: XOR Wikipedia. W C++ i Pythonie symbol operacji XOR to
^.↩︎Dźwięki są różne, jeśli są oznaczone różnymi liczbami. Różne dźwięki mogą mieć tę samą wysokość oraz punktację.↩︎
Bajtek codziennie przed szkołą odwiedza pobliski sklep z kanapkami. Kupuje w nim drugie śniadanie, które pozwala mu przetrwać wszystkie lekcje.
W sklepie sprzedawanych jest N rodzajów kanapek, ponumerowanych od 1 do N. Nie wszystkie z nich są dostępne każdego dnia. Przez kolejne Q dni, i‑tego dnia dostępne będą jedynie kanapki o rodzajach od Ai do Bi włącznie. Sklep jest bardzo popularny i chce obsłużyć jak najwięcej klientów, więc Bajtek może kupić każdy rodzaj kanapki co najwyżej raz dziennie.
Bajtek nie przejmuje się ceną kanapek, ale ma ograniczoną pojemność żołądka. Kanapka rodzaju j ma Cj kalorii. Natomiast Bajtek może zjeść co najwyżej Xi kalorii i-tego dnia.
Każda kanapka daje Bajtkowi pewną liczbę punktów satysfakcji. Zjedzenie kanapki j-tego rodzaju zapewnia mu Sj punktów satysfakcji. Satysfakcja Bajtka to po prostu suma punktów za wszystkie kanapki zjedzone przez niego danego dnia.
Dla każdego z Q dni pomóż Bajtkowi znaleźć maksymalną wartość jego satysfakcji, jaką może osiągnąć nie przekraczając limitu kalorii.
Wejście
W pierwszym wierszu wejścia znajduje się jedna liczba całkowita N – liczba rodzajów kanapek.
W każdym z kolejnych N wierszy znajdują się dwie liczby całkowite Cj i Sj – kaloryczność i punkty satysfakcji dawane przez j-tą kanapkę.
W następnym wierszu znajduje się jedna liczba całkowita Q – liczba dni.
W każdym z kolejnych Q wierszy znajdują się trzy liczby całkowite Ai, Bi i Xi – zakres dostępnych kanapek i pojemność żołądka Bajtka i-tego dnia.
Wyjście
Na wyjściu powinno znaleźć się Q wierszy.
W i-tym z nich powinna znaleźć się jedna liczba całkowita – maksymalna możliwa satysfakcja Bajtka i-tego dnia.
Ograniczenia
1 ≤ N ≤ 10 000,
1 ≤ Cj ≤ 2 000,
1 ≤ Sj ≤ 109,
1 ≤ Q ≤ 100 000,
1 ≤ Ai ≤ Bi ≤ N,
1 ≤ Xi ≤ 2 000.
Podzadania
| Podzadanie | Warunki | Punkty |
|---|---|---|
| 1 | N ≤ 500, Q ≤ 1 000, Xi ≤ 500 | 14 |
| 2 | N ≤ 500, Q ≤ 20 000, Xi ≤ 500 | 12 |
| 3 | N ≤ 5 000, Q ≤ 20 000, Xi ≤ 80 | 29 |
| 4 | N ≤ 2 000, Q ≤ 4 000 | 14 |
| 5 | brak dodatkowych ograniczeń | 31 |
Przykład
| Wejście | Wyjście | Wyjaśnienie |
|
|
Pierwszego dnia Bajtek powinien zjeść kanapki rodzajów 2, 4 i 5. Drugiego dnia kanapki rodzaju 2 i 4. Trzeciego dnia kanapkę rodzaju 5. |
| Wejście | Wyjście | Wyjaśnienie |
|
|
Bajtek może zjeść wszystkie kanapki. |
| Wejście | Wyjście | Wyjaśnienie |
|
|
Bajtek nie może zjeść żadnej kanapki. |
Bajtek i Bajtosia grają w grę ze stosem kamieni, który początkowo zawiera S kamieni. Gracze wykonują ruchy na zmianę, a zaczyna Bajtek.
W każdej turze gracz wybiera dodatnią liczbę całkowitą x, która jest palindromem1 i usuwa dokładnie x kamieni ze stosu.
Jeśli na początku tury czyjejś osoby stos jest pusty, ta osoba przegrywa. Bajtek zastanawia się, czy przy optymalnej grze obu graczy uda mu się wygrać. Pomóż mu odpowiedzieć na to pytanie.
Wejście
Pierwsza linia wejścia zawiera liczbę całkowitą S - liczbę kamieni.
Wyjście
Należy wypisać TAK, jeżeli przy optymalnej grze obu
graczy wygra Bajtek. W przeciwnym przypadku należy wypisać
NIE.
Ograniczenia
1 ≤ S < 10105
Podzadania
| Podzadanie | Warunki | Punkty |
|---|---|---|
| 1 | S < 100 | 8 |
| 2 | S < 106 | 12 |
| 3 | S < 109 | 24 |
| 5 | Brak dodatkowych ograniczeń. | 56 |
Przykład
| Wejście | Wyjście | Wyjaśnienie |
|
|
Bajtek może zabrać 8 kamieni, wygrywając grę. |
| Wejście | Wyjście | |
|
|
| Wejście | Wyjście | |
|
|
Dodatnia liczba całkowita jest palindromem, jeśli czyta się tak samo od lewej do prawej i od prawej do lewej. 1, 121, 9009 są palindromami, ale 1212, 112, 990 już nie.↩︎