soicn

Time limit: 0.02s Memory limit: 4MB Input: soicn.in Output: soicn.out

Serviciul Ocult de Informaţii al Comisiei Naţionale (SOICN) este constituit din nn agenţi oculţi, cu numere de cod distincte de la 11 la nn şi un agent şef codificat 00. 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 nn, numărul de agenţi oculţi din SOICN, (exclusiv şeful), iar pe fiecare din următoarele linii câte o pereche de numere x yx\ y unde x,y{0,1,2,,n}x, y \in \{0,1,2,\dots,n\}, sunt separate prin spaţii şi au semnificaţia "xx şi yy 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, mm – numărul de grupuri de agenţi forte în cadrul SOICN;
  • pe fiecare din următoarele mm linii, numerele de cod ale agenţilor fiecărui grup forte, separate prin spaţii.

Restricții și precizări

  • 1n1501 \le n \le 150

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

Log in or sign up to be able to send submissions!