|
|||||||||||||
|
Linochodziarz
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. ZadanieNapisz program, który:
WejścieW 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. WyjściePlik 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. PrzykładDla 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 |