III Obóz im. A. Kreczmara 2002
|
Zadanie: lin
|
Autor: Krzysztof Onak
|
dzień drugi | 6 sierpnia 2002 |
Plik źródłowy: | lin.??? (np. pas, c, cpp) |
Plik wejściowy: | lin.in |
Plik wyjściowy: | lin.out |
Linochodziarz chodzi po osi liczbowej i dysponuje dwoma zestawami kroków - do przodu i do tyłu - które wykonuje na przemian. Przyjmijmy, że mamy dwa niepuste zbiory dodatnich liczb całkowitych A i B. Linochodziarz startuje z punktu 0 i w nieskończonej pętli wykonuje następujące czynności: idzie a (liczba a należy do zbioru A) kroków do przodu (w kierunku plus nieskończoności), zatrzymuje się, cofa się o b (b należy do B) kroków i znów się zatrzymuje. W kolejnych iteracjach pętli mogą występować różne wartości a i b. Interesuje nas odpowiedź na pytanie, czy dla danych zbiorów A i B linochodziarz może zatrzymać się w każdym punkcie całkowitym.
Napisz program, który:
W pierwszym wierszu pliku tekstowego lin.in znajduje się jedna liczba całkowita k określająca liczbę zestawów danych, 1 <= k <= 100. Po niej następuje k zestawów danych. W pierwszym wierszu każdego z nich znajdują się liczby całkowite p i q (1 <= p,q <= 1000) oddzielone pojedynczym odstępem. Są to odpowiednio liczba elementów w zbiorze A i w zbiorze B. Następne p+q wierszy zawiera po jednej dodatniej liczbie całkowitej nie większej niż 109. Pierwsze p z tych liczb jest elementami zbioru A, a następne q należy do B.
Plik tekstowy lin.out powinien zawierać k wierszy. Wiersz i-ty powinien zawierać jedno słowo TAK, jeśli linochodziarz opisany w i-tym zestawie danych może zatrzymać się w każdym punkcie całkowitym, lub słowo NIE w przeciwnym przypadku.
Dla pliku wejściowego lin.in:
2 1 1 2 2 2 2 1 2 1 2
poprawną odpowiedzią jest plik wyjściowy lin.out:
NIE TAK