III Mistrzostwa Wielkopolski w Programowaniu Zespołowym 2-3 grudnia 2005
Zadanie F. Gra wojenna

Opis

Mały Jasio bardzo lubi grać w różnego rodzaju gry. Ostatnio starszy brat pokazał mu w jaki sposób napisać bardzo prosty program. Jasiowi tak się spodobało programowanie, że postanowił napisać swoją własną grę. Będzie to symulator czołgów. Na planszy będą jeździły różne jednostki (od czołgów po transportery opancerzone). Część z tych jednostek będzie należeć do gracza, a część do oddziałów złego i podstępnego komputera. Mały Jasio ku wielkiemu zdziwieniu starszego brata napisał samodzielnie bardzo dużą część gry, jednak w pewnym momencie utknął – nie wie jak napisać moduł sterujący komputerem. Dlatego też postanowił poprosić Cię o pomoc. Jako że jest to futurystyczna gra, czołgi wyposażone są w bardzo nowoczesną broń laserową, która niszczy wszystko czego dotknie. Wszystkie obiekty na planszy Jaś traktuje jako okręgi o jakimś zadanym promieniu, zaś strumień wypuszczany przez tą zabójczą broń ma pewną zadaną szerokość.

Mając podane współrzędne swojej jednostki, położenie oraz rozmiary wszystkich obiektów na planszy, a także znając szerokość wypuszczanego promienia laserowego masz stwierdzić czy da się zniszczyć wyznaczony cel nie naruszając żadnego z pozostałych obiektów, tzn. jedynym obiektem, którego dotknie promień lasera ma być obiekt, w który celujemy. Jeżeli istnieje taka możliwość to należy podać kąt (pomiędzy promieniem lasera, a prostą o równaniu y = 0) pod jakim należy strzelić aby ten obiekt zniszczyć.

Specyfikacja wejścia

Pierwsza linia wejścia zawiera liczbę całkowitą D (1 ≤ D ≤ 50), oznaczającą liczbę zestawów danych. Pierwsza linia każdego zestawu danych zawiera trzy liczby rzeczywiste X, Y, R (-100000 ≤ X,Y ≤ 100000; 0 < R ≤ 10) oznaczające odpowiednio współrzędne pozycji, z której celujemy, a także szerokość lasera, z którego strzelamy. W kolejnej linii znajduje się liczba całkowita K (0 ≤ K ≤ 30000) określająca liczbę obiektów na planszy. W następnych K liniach znajdują się trzy liczby rzeczywiste x, y, r (-100000 ≤ x,y ≤ 100000; 0 < r ≤ 100) określające odpowiednio współrzędne oraz rozmiar obiektów. W ostatniej linii każdego testu znajdują trzy liczby xk, yk, rk (-100000 ≤ xk,yk ≤ 100000; 0 < rk ≤ 100) opisujące współrzędne oraz rozmiar celu. Można założyć, że żadne dwa obiekty nie nachodzą na siebie ani nie stykają się ze sobą, a także że w promieniu 2R od współrzędnych obiektu strzelającego nie ma żadnego obiektu.

Specyfikacja wyjścia

Dla każdego testu należy wypisać pojedynczą linię zawierającą odpowiednio NIE gdy celu nie da się zniszczyć lub dowolny dopuszczalny kąt (w stopniach) w stosunku do prostej y = 0 (patrz rysunek), pod jakim należy strzelać, aby zniszczyć obiekt. Kąt należy podać z dokładnością do dwóch miejsc po przecinku. Dopuszczalny jest błąd o 0.01 stopnia. Można założyć że jeżeli istnieje możliwość strzału to dopuszczalny zakres kątów będzie miał rozpiętość co najmniej 0.03 stopnia.

Rysunek pokazujący, jak liczyć poprawnie kąty:

Przykład

Wejście

4
0.0 0.0 1.0
1
10.0 0.0 1.0
13.0 0.0 0.5
0.0 0.0 0.5
2
1.0 5.0 1.2
-10.0 6.0 3
4.0 8.0 1.0
0.0 0.0 0.5
2
1.0 5.0 1.2
6.0 12.0 3.0
4.0 8.0 1.0
0.0 0.0 0.5
2
10.1 15.6 3.0
-15.0 -15.0 1.0
-5.0 -5.0 5

Wyjście

NIE
55.00
NIE
225.00