Cerinţa
Se dă lista muchiilor unui graf neorientat. Să se afișeze, pentru fiecare vârf al grafului, lista vecinilor săi.
Date de intrare
Fişierul de intrare listavecini.in
conţine pe prima linie numărul n
, reprezentând numărul de vârfuri ale grafului. Fiecare dintre următoarele linii conține câte o pereche de numere i j
, cu semnificația că există muchie între i
și j
.
Date de ieşire
Fişierul de ieşire listavecini.out
va conţine n
linii. Fiecare linie i
va conține numărul de vecini ai vârfului i
urmat de aceștia, în ordine crescătoare.
Restricţii şi precizări
1 ≤ n ≤ 100
1 ≤ i , j ≤ n
- muchiile se pot repeta în fișierul de intrare
Exemplu
listavecini.in
5 1 4 1 3 3 5 4 5 2 4 1 2 4 2 3 4
listavecini.out
3 2 3 4 2 1 4 3 1 4 5 4 1 2 3 5 2 3 4
#include <bits/stdc++.h> using namespace std; ifstream cin("listavecini.in"); ofstream cout("listavecini.out"); int n , m , a[101][101] , p , r , e[2500]; int main() { cin >> n; while(cin >> p >> r) { a[p][r] = 1; a[r][p] = 1; a[0][p]++; a[0][r]++; } for(int i = 1 ; i <= n ; ++i) { for(int j = 1 ; j <= n ; ++j) if (a[i][j]) e[i]++; } for(int i = 1 ; i <= n ; ++i) { cout << e[i] << " "; for(int j = 1 ; j <= n ; ++j) if(a[i][j])cout << j << " "; cout << endl; } return 0; }