Contest problemset description


Wietrzna pogoda
(A)
Limit pamięci: 512 MB
Limit czasu: 3.00 s

Rozważmy płaszczyznę oraz układ współrzędnych. W punkcie (0,0) stoi pionek, którego celem jest przemieścić się do wyznaczonego punktu (X,Y). W każdej sekundzie, pionek należy przesunąć o jedną jednostkę w jedną z czterech stron: do góry, w dół, w lewo lub w prawo. Jednakże, na planszy wieje silny wiatr, który w każdej sekundzie przesuwa pionek o jedną jednostkę w którymś kierunku, zaraz przed wykonaniem wybranego ruchu. Oznacza to, że jeśli wiatr zepchnie nas pole (X,Y), to nie traktujemy tego jako przemieszczenie się do tego punktu: musimy na niego wejść bezpośrednio po wykonaniu naszego ruchu.

Chciałbyś odpowiadać na zapytania, w jakim najszybszym czasie jesteś w stanie przesunąć pionek z pozycji startowej do pewnej pozycji (X,Y)?

Wejście

W pierwszym wierszu wejścia dana jest jedna liczba całkowita Q oznaczająca liczbę zapytań. W drugim wierszu wejścia dany jest ciąg znaków c0c1cN − 1, składający się z liter U, D, L oraz R, jest to opis wiatru oraz w którą stronę wiatr przesuwa pionek w kolejnych sekundach (litery odpowiadają odpowiednio przesunięciu o 1 w górę (up) i w dół (down) wzdłuż osi OY oraz o 1 w lewo (left) i prawo (right) wzdłuż osi OX). W sekundzie i, wiatr przesunie pionek w stronę daną przez ci mod  N (gdzie i mod  N oznacza resztę z dzielenia i przez N). Można myśleć o tym, że przez pierwsze N sekund wiatr przesuwa zgodnie ze znakami w ciągu, a kiedy dojdzie do końca, zapętla się i zaczyna przesuwać od początku ciągu.

W następnych Q wierszach dany jest opis kolejnych zapytań, i-te zapytanie składa się z dwóch liczb xi oraz yi, oznaczających docelowe pole, na którym ma znaleźć się pionek.

Wyjście

Należy wypisać Q wierszy, i-ty wiersz powinien być odpowidzią na zapytanie, w ile minimalnie sekund jesteśmy w stanie przesunąć pionek z pola (0,0) do pola (xi,yi), lub liczbą  − 1, jeżeli nie jest to możliwe w żadnym czasie.

Ograniczenia

1 ≤ Q ≤ 200 000, 1 ≤ N ≤ 1 000 000, |xi|, |yi| ≤ 109.

Podzadania

W każdym podzadaniu testy, w których zachodzi warunek Q = 1, warte są 60% punktów za dane podzadanie.

Podzadanie Warunki Punkty
1 N = 1. 26
2 N ≤ 20. 23
3 Jeżeli odpowiedź istnieje, to jest nie większa niż 1 000 000. 28
4 Brak dodatkowych ograniczeń. 23

Przykład

Wejście Wyjście Wyjaśnienie
3
LRD
-2 -2
1 0
3 3
3
-1
8

W pierwszym przypadku, jedną z możliwości jest pójście kolejno w lewo, lewo oraz w dół. W drugim przypadku nie ma żadnej możliwości, aby po którymś ruchu znaleźć się w polu (1,0). W ostatnim przypadku trzeba się trochę bardziej natrudzić, ale chodząc odpowiednio w prawo, dwa razy w górę, w prawo, dwa razy w górę i jeszcze w prawo i w górę, jesteśmy w stanie dotrzeć do docelowego punktu.


Ujednolicenie
(B)
Limit pamięci: 512 MB
Limit czasu: 3.00 s

Dana jest tablica o N wierszach i N kolumnach. Komórka w i-tym wierszu i j-tej kolumnie ma początkowo pewien kolor ki, j. Twoim zadaniem jest przemalować tablicę tak, żeby dla danego K, oraz dla dowolnych i, j, x, y zachodziły następujące warunki:

  • Jeżeli reszta z dzielenia przez K liczb (i+j) oraz (x+y) jest taka sama, to komórki (i,j) oraz (x,y) powinny mieć ten sam kolor.
  • Jeżeli reszta z dzielenia przez K liczb (i+j) oraz (x+y) jest różna, to komórki (i,j) oraz (x,y) muszą mieć różne kolory.

Jednakże, zmiana koloru pojedynczej komórki o kolorze i w kolor j kosztuje ci, j. Kolor każdej komórki można zmienić co najwyżej raz. Jaki jest najmniejszy sumaryczny koszt przemalowania tablicy tak, żeby spełniała oba warunki?

Wejście

W pierwszym wierszu wejścia znajdują się trzy liczby całkowite N, K oraz C, oznaczające odpowiednio rozmiar tablicy, parametr K oraz liczbę kolorów. W następnych N wierszach znajduje się opis początkowego stanu tablicy. i-ty wiersz składa się z N liczb, ki, 1, …, ki, N, oznaczająca początkowe kolory w i-tym wierszu tablicy.

Potem następuje C wierszy opisujące koszta zmiany kolorów. W i-tym wierszu znajduje się C liczb ci, 1, …, ci, C, wartość ci, j określająca cenę zmiany koloru i w kolor j (odwrotna zmiana koloru może mieć inną cenę).

Wyjście

W jednym wierszu wyjścia należy wypisać jedną liczbę całkowitą, oznaczającą minimalny koszt przemalowania tablicy tak, by spełniała założenia zadania.

Ograniczenia

1 ≤ N ≤ 1 000, 1 ≤ C ≤ 10, 1 ≤ K ≤ C, 1 ≤ ki, j ≤ C, 1 ≤ ci, j ≤ 109.

Podzadania

Podzadanie Warunki Punkty
1 K = 1. 26
2 K = 2. 31
3 K = 3. 32
4 Brak dodatkowych ograniczeń. 11

Przykład

Wejście Wyjście Wyjaśnienie
2 3 3
2 1
2 1
0 3 3
2 0 5
2 1 0
5

Zmiana komórki (2,1) w kolor pierwszy oraz komórki (2,2) w kolor trzeci spowoduje, że warunki zadania zostaną spełnione minimalnym kosztem 5.


Bilard
(C)
Limit pamięci: 512 MB
Limit czasu: 1.00 s

Rozważmy następującą wariację gry w bilarda (gry, w której kijem uderza się kule ustawione na stole, które mają wpaść do specjalnie wyznaczonych dziur w odpowiednich miejscach stołu). Na stole leży N kul bilardowych, ponumerowanych od 1 do N. Mamy w zasobach X energii. Wbicie kuli o numerze i kosztuje ai energii. Nie można wbić danej kuli, jeżeli posiadana energia w danym momencie jest mniejsza od jej kosztu. Ponadto, dany jest ciąg pi, dla i = 1, …, N. Jeżeli pi =  − 1, to kula o numerze i może zostać wbita w dowolnym momencie. Jeżeli natomiast 1 ≤ pi ≤ N, to kula o numerze i może zostać wbita dopiero po wbiciu kuli o numerze pi.

Jaki jest największy numer kuli, jaką jesteśmy w stanie wbić, przy założeniu, że zawsze trafiamy?

Wejście

W pierwszym wierszu wejścia dane są dwie liczby naturalne N oraz X oznaczające liczbę kul oraz początkową energię. W następnym wierszu dany jest ciąg a1, …, aN, oznaczający energię potrzebną do wbicia kolejnych kul. W następnym wierszu dany jest ciąg p1, …, pN.

Wyjście

W jedynym wierszu wyjścia należy wypisać jedną liczbę całkowitą, oznaczającą najwyższy numer kuli, jaki jesteśmy w stanie wbić, lub  − 1 jeżeli nie jest to możliwe.

Ograniczenia

1 ≤ N ≤ 200 000, 1 ≤ X ≤ 1015, 1 ≤ ai ≤ 109, 1 ≤ pi ≤ N lub pi =  − 1, ale pi ≠ i, dla i = 1, …, N.

Podzadania

Podzadanie Warunki Punkty
1 N ≤ 1 000, pi =  − 1 dla i = 1, …, N. 6
2 N ≤ 1 000, p1 =  − 1, pi = i − 1 dla i = 2, …, N. 9
3 N ≤ 1 000, pi < i dla i = 1, …, N. 16
4 pi < i dla i = 1, …, N. 20
5 N ≤ 1 000. 19
6 Brak dodatkowych ograniczeń. 30

Przykład

Wejście Wyjście
6 7
1 2 4 3 10 100
-1 -1 -1 -1 -1 -1
4
Wejście Wyjście
5 12
1 2 3 5 8
-1 1 2 3 4
4
Wejście Wyjście
8 10
3 1 4 1 5 9 2 6
-1 1 2 -1 4 4 5 7
7
Wejście Wyjście
2 1000000000000000
1 1
2 1
-1