Serviciul Ocult de Informaţii al Comisiei Naţionale (SOICN) este constituit din agenţi oculţi, cu numere de cod distincte de la la şi un agent şef codificat . Din motive de securitate, nu oricare doi agenţi oculţi au contacte (informaţionale!) directe, dar prin contactele directe existente, oricare doi agenţi oculţi îşi pot comunica informaţii. Un serviciu ocult este considerat forte dacă şi numai dacă nu conţine nici un agent prin suprimarea căruia se compromite comunicarea (şi ca urmare, să existe agenţi care să nu îşi mai poată transmite informaţii).
Cerință
Scrieţi un program, care verifică dacă SOICN este forte. În plus, dacă SOICN nu este forte, programul să determine:
- verigile slabe ale SOICN (toți agenţii prin a căror suprimare se compromite comunicarea);
- toate grupurile de agenţi care sunt forte în cadrul SOICN, maximale cu această proprietate.
Date de intrare
Fişierul de intrare se numeşte soicn.in
şi conţine pe prima linie , numărul de agenţi oculţi din SOICN, (exclusiv şeful), iar pe fiecare din următoarele linii câte o pereche de numere unde , sunt separate prin spaţii şi au semnificaţia " şi au contact direct".
Date de ieșire
Fişierul de ieşire, numit soicn.out
, va conţine mesajul SOICN este forte
sau:
- pe prima linie, mesajul
SOICN nu este forte
; - pe a doua linie, numerele de cod ale agenţilor care constituie verigile slabe ale serviciului, separate prin spaţii;
- pe a treia linie, – numărul de grupuri de agenţi forte în cadrul SOICN;
- pe fiecare din următoarele linii, numerele de cod ale agenţilor fiecărui grup forte, separate prin spaţii.
Restricții și precizări
Exemplul 1
soicn.in
2
0 2
0 1
2 1
soicn.out
SOICN este forte
Exemplul 2
soicn.in
3
0 1
0 3
2 1
soicn.out
SOICN nu este forte
0 1
3
0 3
1 2
0 1