Pentru a testa o nouă topologie s-a construit o reţea de calculatoare în care fiecare calculator transmite informaţia unidirecţional către un singur calculator din reţea. Numim conexiune o pereche ordonată de calculatoare, nu neapărat distincte, în care primul este cel care trimite informaţia iar al doilea este cel care o recepţioneaza direct. Fiind dată o astfel de reţea şi conexiunile existente între calculatoarele care o alcătuiesc, să se determine submulţimea cu număr maxim de calculatoare-feed-back. Un calculator-feed-back are proprietatea că informația ce pleacă de la acesta ajunge, prin intermediul conexiunilor succesive, înapoi la calculatorul de la care a plecat.
Cerință
Scrieţi un program care, pentru o reţea cu calculatoare numerotate de la la şi conexiuni precizate, determină submulţimea cu număr maxim de calculatoare-feed-back.
Date de intrare
Pe prima linie a fişierului de intrare retea.in
se află un număr natural nenul , reprezentând numărul de calculatoare din reţea, iar pe fiecare dinre următoarele linii, separate prin câte un spaţiu, câte valori şi o valoare , cu semnificaţia: pe linia , elementul de pe poziţia este dacă şi numai dacă există conexine între calculatorul şi calculatorul .
Date de ieșire
În fişierul de ieşire retea.out
se vor scrie pe prima linie calculatoarele-feed-back din submulţimea determinată. Elementele submulţimii sunt scrise în ordine crescătoare, separate prin câte o virgulă, fără spaţii iar submulţimea începe cu caracterul {
şi se termină cu caracterul }
. În fişierul de ieşire nu se vor scrie spaţii înainte, între sau după elementele mulţimii.
Restricții și precizări
- Un calculator poate să aibă o conexiune cu el însuşi.
- Un calculator poate avea o conexiune doar cu singur calculator.
Exemplul 1
retea.in
5
0 0 0 1 0
1 0 0 0 0
1 0 0 0 0
0 1 0 0 0
0 0 0 0 1
retea.out
{1,2,4,5}
Explicație
Calculatorul are conexiune cu calculatorul , calculatorul are conexiune cu calculatorul , iar calculatorul are conexiune cu calculatorul , deci oricare dintre calculatoarele , sau este calculator-feed-back. Calculatorul are conexiune cu el însuşi deci este calculator-feed-back. Submulţimea finală este .
Exemplul 2
retea.in
6
0 0 0 0 1 0
0 0 0 1 0 0
0 0 0 0 0 1
0 0 0 0 1 0
0 0 0 1 0 0
0 0 0 1 0 0
retea.out
{4,5}