Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
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ń.
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:
Dodane przez: | Szymon Witkowski |
Data dodania: | 2016-03-02 |
Limit czasu wykonania programu: | 1s-2s |
Limit długości kodu źródłowego | 50000B |
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? |