Fişierul intrare/ieşire: | retele.in, retele.out | Sursă | Lista lui Francu |
Autor | Cristian Cadar | Adăugată de | |
Timp execuţie pe test | 0.2 sec | Limită de memorie | 20480 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Retele
Intr-un oras exista N abonati si mai multe retele de telefonie. Doi abonati apartin aceleiasi retele de telefonie, daca primul abonat il poate contacta pe al doilea (direct sau prin intermediul altor abonati) si reciproc.
Cerinta
Determinati toate retele de telefonie din oras, prin specificarea abonatilor fiecarei retele.
Date de intrare
Pe prima linie a fisierului retele.in, se afla numarele N si M, reprezentand numarul de abonati si numarul de contacte din oras. Pe urmatoarele M linii, se afla cate doua numere x si y, cu semnificatia ca abonatul x il poate contacta direct pe abonatul y.
Date de iesire
Fisierul de iesire retele.out contine pe prima linie numarul T de retele de telefonie. Pe urmatoarele T linii vor fi afisate retelele de telefonie, cate una pe o linie, in formatul urmator: R A1 A2 ... AR, unde R este numarul de abonati, iar A1 A2 ... AR reprezinta abonatii care fac parte din reteaua respectiva. Retelele vor fi afisate in ordinea crescatoare a abonatului de numar minim, iar abonatii din aceeasi retea vor fi, de asemenea, afisati in ordine crescatoare.
Restrictii
- 1 ≤ N ≤ 50000
- 1 ≤ M ≤ 300000
- Daca abonatul x il poate contacta direct pe abonatul y, nu inseamna ca neaparat si abonatul y il poate contacta direct pe abonatul x.
Exemplu
retele.in | retele.out |
---|---|
10 14 2 3 3 2 3 1 1 9 9 7 7 1 4 3 4 10 6 10 5 4 5 6 10 5 5 8 5 7 | 4 3 1 7 9 2 2 3 4 4 5 6 10 1 8 |