Sparing w Programowaniu Politechnika Poznańska, 10.03.2007 |
Zadanie A - Połącz? Podziel? ... Zdrużynuj! |
Twoim zadaniem jest podzielenie pewnej grupy ludzi na dwie drużyny, w taki sposób, że:
To zadanie może mieć wiele rozwiązań. Masz znaleźć i wypisać dowolne z nich lub informację, że szukane rozwiązanie nie istnieje.
Dla uproszczenia każda osoba ma przypisaną unikalną liczbę całkowitą z zakresu od 1 do N.
Wpierwszej linii znajduję się pojedyncza liczba D (1 ≤ D ≤ 300) określająca liczbę testów
Wpierwszej linii testu znajduje się liczba całkowita N (2 ≤ N ≤ 100) - liczba ludzi, których trzeba przypisać do drużyn, a po niej N linii, po jednej na osobę, według rosnących identyfikatorów. Każda linia zawiera listę parami różnych liczb Aij (1 ≤ Aij ≤ N, Aij ≠ i) oddzielonych spacjami. Lista ta reprezentuje identyfikatory osób, które zna i-ta osoba. Lista zakończona jest liczbą 0.
Jeżeli rozwiązanie dla problemu nie istnieje, wypisz -1. W przeciwnym wypadku zapisz rozwiązanie w dwóch liniach. W pierwszej napisz liczbę osób w pierwszej drużynie, a po niej identyfikatory osób z tej drużyny odzielone pojedynczą spacją. W drugiej linii opisz w ten sam sposób drugą drużynę. Kolejność drużyn oraz identyfikatorów w każdej drużynie jest dowolna.
Wejście2 5 3 4 5 0 1 3 5 0 2 1 4 5 0 2 3 5 0 1 2 3 4 0 5 2 3 5 0 1 4 5 3 0 1 2 5 0 1 2 3 0 4 3 2 1 0 |
Wyjście-1 3 1 3 5 2 2 4 |