Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

FR_05_18 - Curling v2!

Curling v2

Pewnego dnia Jasiowi bardzo się nudziło i postanowił pooglądać TV. Po żmudnej wędrówce po kanałach napotkał transmisję zawodów gry w Curling. Jasiu zaciekawiony nowo poznaną dyscypliną sportową postanowił zagrać ze znajomymi w grę o podobnych zasadach.

Zasady gry:

- W grze biorą udział dwie drużyny.

- Każda drużyna ma do dyspozycji tyle samo kamieni.

- Grę zawsze zaczyna drużyna czerwona.

- Ruchy odbywają się na przemian.

- Rozgrywana będzie zawsze dokładnie jedna runda, która kończy się wraz z wyrzuconym ostatnim kamieniem  drużyny żółtej.

- Drużyna przed wykonanym rzutem ma wybór z którego miejsca (p) o współrzędnych (p,-11), gdzie (-2<=p<=2), 

   będzie rzucać swój kamień. 

- Wyrzucony kamień z miejsca p może trafić w sektor osi OX z przedziału [5*p-5,5*p+5]

- Przed rzutem drużyna podaje w które miejsce chce oddać swój rzut.

- W przypadku, gdy cel nie zawiera się w możliwym sektorze drużyna traci swój rzut.

- Zakłada się, że przynajmniej jeden kamień trafi w dom, który jest kołem o równaniu x^2+y^2=100

- Zwycięża ta drużyna, która umieści swój kamień bliżej środka koła.

- W przypadku remisu żadna z drużyn nie jest zwycięzcą.

- W przypadku gdy wyrzucony kamień na swojej drodze do celu napotyka inny kamień dochodzi do zderzenia.

- Podczas zderzenia kamień uderzający zatrzymuje się na pozycji  uderzanego. Natomiast uderzany przeskakuje w zależności od miejsca (p) uderzającego zawsze o 1 jednostkę na osi OY do przodu oraz o +|p| jednostek na OX, jeśli współrzędna x osiągnięta w momencie zderzenia jest większa od miejsca wyrzutu lub o -|p| w zdarzeniu przeciwnym. 

- Zakłada się, że występują tylko zderzenia centralne, a każde uderzenie z p równego 0 jest poprawnie rozpatrzone według powyższych reguł. 

- W przypadku napotkania innego kamienia przez uderzony już wcześniej kamień stosuje się przeskok analogiczny do wyżej opisanych reguł za wyjątkiem (p), które zawsze pochodzi od rzutu wywołującego ciąg zderzeń.

Wejście:

W pierwszym wierszu znajduje się mała liczba nieparzysta k oznaczająca ilość wyrzuconych kamieni . 

W kolejnych k wierszach znajdują się 3 liczby x,y,p. Pierwsza i druga oznacza współrzędne celu kamienia podane przez drużynę i miejsce p, z którego został kamień wyrzucony. |X|<16,(-10<=Y<=16).

W kolejnym wierszu znajduje się liczba t  określająca liczbę zapytań. (1<=t<=10^6)

W następnych t wierszach znajdują się 3 liczby x,y,p oznaczające pierwszą i drugą współrzędną będącą celem ostatniego kamienia drużyny żółtej i miejsce, z którego drużyna rzuca swój ostatni kamień. 

W pierwszej linii jedna niewielka liczba (n<1001) oznaczająca liczbę przypadków testowych.
W drugiej linii jedna liczba t (t<10001) oznaczająca liczbę skraplaczy wilgoci na farmie.

Wyjście:

Odpowiedź „TAK”, jeżeli wygra drużyna żółta, w przeciwnym wypadku „NIE”. Dodatkowo, jeśli „TAK”, należy podać ilość punktów w nawiasie kwadratowym, które definiowane są jako 1 punkt za każdy kamień zwycięskiej drużyny leżący bliżej od najbliżej położonego względem środka koła kamienia drużyny przeciwnej.

Przykład:

Wejście:
5
-2 0 0
-1 0 -1
0 -7 1
-1 -3 1
-1 -3 1
3
0 0 0
0 0 1
0 0 2
Wyjście:
TAK [1]
TAK [2]
TAK [1]

Wytłumaczenie przeskoków dla kamyka na  (-5.0):

a) Uderzonego przez inny kamyk z p=0.   (-5.0)->(-5.1)

b) Uderzonego przez inny kamyk z p=-2.   (-5.0)->(-7.1)

c) Uderzonego przez inny kamyk z p=1.   Rzut niemożliwy 

Wytłumaczenie przykładu:

Sytuacja przed zapytaniami:

Sytuacja po zapytaniu pierwszym:

 

Sytuacja po zapytaniu drugim:

Sytuacja po zapytaniu trzecim:
Wykonanie rzutu z p=2 na pozycję (0,0) jest niemożliwe.

Dodane przez:Szymon Witkowski
Data dodania:2016-03-02
Limit czasu wykonania programu:1s-2s
Limit długości kodu źródłowego50000B
Limit pamięci:1536MB
Cluster: Cube (Intel G860)
Języki programowania:All except: ASM32-GCC COBOL D-CLANG D-DMD ELIXIR FANTOM GOSU GRV JS-MONKEY NIM OBJC OBJC-CLANG PICO RUST SCM qobi CHICKEN VB.NET

ukryj komentarze
2016-04-17 03:16:09 Szymon Witkowski
Tak
2016-04-17 03:15:31 Karol Waszczuk
Czy do końcowego wyniku zaliczane są tylko te kamienie, które wylądowały w obrębie domu?
2016-04-17 02:38:02 Szymon Witkowski
"-> p = 1, czyli otrzymujemy możliwe sektory [0..10] w osi OX
-> oba rzuty są deklarowane na x = -1 "

Racja te dwa kamienie są stracone. Nastąpiła pomyłka w trakcie rysowania grafik. Postaramy się jak najszybciej je poprawić.
Chciałbym podkreślić że błąd nastąpił tylko przy grafikach natomiast testy są poprawne.
Przepraszam za utrudnienia.

EDIT// Grafika została podmieniona

Ostatnio edytowany: 2016-04-17 03:12:53
2016-04-17 01:37:13 Karol Waszczuk
@Arkadiusz radzę przypomnieć sobie licealny wzór koła.
2016-04-17 01:33:27 Arkadiusz Nowaczyñski
Dom jest kołem o równaniu x^2 + y^2 <= 100, czy może jednak x^2 + y^2 <= 10?

Racja:), 100 jest OK.

Ostatnio edytowany: 2016-04-17 01:39:22
2016-04-17 01:29:51 Arkadiusz Nowaczyñski
Dla kamieni nr 4 i 5 przed zapytaniami:
-> p = 1, czyli otrzymujemy możliwe sektory [0..10] w osi OX
-> oba rzuty są deklarowane na x = -1
Czy to nie oznacza, że oba rzuty są zmarnowane?
2016-04-17 01:14:07 Karol Waszczuk
Czy przypadkiem w przykładzie przed zapytaniami nie nastąpią zderzenia kamieni 4 -> 3 a następnie 5 -> 4 -> 3?
2016-04-17 00:22:32 Szymon Witkowski
Jak w treści k to mała liczba, nawet bardzo mała, mniejsza od 50 :)
2016-04-16 22:48:27 Karol Waszczuk
Jakie jest ograniczenie na k?
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.