J - Gra LiczbKrysia i Mateusz grają w nową grę - Grę Liczb. Krysia i Mateusz wybierają na zmianę po jednej liczbie większej od jeden. Przestrzegają takich zasad:
Przykładowo Mateusz zaczyna grę wybierając liczbę 4. Krysia nie może wybrać liczb 4, 8, 12, .... Załóżmy, że wybrała 3. Teraz liczby 3, 6, 9, ... są także niedozwolone. Ponadto liczby takie jak 7 = 3 + 4, 10 = 2*3 4, 11 = 3 + 2*4, 13 = 3*3 + 4, ... są także niedostępne. Zostały tylko liczby 2 i 5. Mateusz wybiera liczbę 2. Mateusz wygrywa, ponieważ liczba 5 = 2 + 3 jest niedozwolona, Krysia nie może wybrać żadnej liczby. Masz za zadanie napisać program, który pomaga rozgrywać Grę Liczb. Z ograniczeniem wybieranych liczb do 20 jest możliwe napisanie programu, który znajduje strategię wygrywającą. ZadanieMając dany stan pewnej gry (listę liczb, które nie są jeszcze zakazane) twój program powinien wypisać listę wszystkich ruchów wygrywających. Ruch jest ruchem wygrywającym, jeżeli gracz, który aktualnie wybiera liczbę może wymusić wygraną niezależnie od ruchu drugiego gracza. Bardziej formalnie:
WejścieW pierwszej linii podana jest liczba testów. Wejścia dla każdego testu oznacza pozycje gry. Rozpoczyna się liczbą a, (0 ≤ a ≤ 20) oznaczającą ilość liczb nadal dostępnych. W kolejnej linii podane jest a liczb oddzielonych pojedynczymi spacjami oznaczające dostępne liczby. Możesz założyć, że pozycja jest pozycją, która mogła na prawdę wystąpić w Grze Liczb (Np jeżeli 3 nie jest na liścia dostępnych liczb, to także 6 tam nie będzie). WyjścieDla każdego testu wypisz jedną linię zawierającą wszystkie ruchy wygrywające uporządkowane w porządku rosnącym, oddzielone pojedynczymi spacjami. Jeżeli nie istnieje żaden ruch wygrywający, to wypisz jedną linię zawierająca słowo "BRAK". Przykładowe wejście2
Przykładowe wyjście2
|