Cerinţa
Se dă lista muchiilor unui graf neorientat. Să se afișeze vârfurile de grad maxim.
Date de intrare
Fişierul de intrare gradmax.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 gradmax.out
va conţine pe prima linie numărul m
de vârfuri de grad maxim, urmat de cele m
vârfuri de grad maxim ,în ordine crescătoare, separate prin exact un spațiu.
Restricţii şi precizări
1 ≤ n ≤ 100
1 ≤ i , j ≤ n
- muchiile se pot repeta în fișierul de intrare
Exemplu
gradmax.in
5 1 4 2 5 2 3 2 1 4 5 3 2 4 3
gradmax.out
2 2 4
#include <bits/stdc++.h> using namespace std; ifstream cin("gradmax.in"); ofstream cout("gradmax.out"); int n , m , a[101][101] , p , r , e[2500]; int main() { int cmax = -1 , x = 0; cin >> n; while(cin >> p >> r) { a[p][r] = 1; a[r][p] = 1; } for(int i = 1 ; i <= n ; ++i) { int cnt = 0; for(int j = 1 ; j <= n ; ++j) { if(a[i][j]) cnt++; } if(cnt > cmax) {cmax = cnt;x = 1;} else if(cnt == cmax) x++; } cout << x << " "; for(int i = 1 ; i <= n ; ++i) { int cnt = 0; for(int j = 1 ; j <= n ; ++j) if(a[i][j]) cnt++; if(cnt == cmax) cout << i << " "; } return 0; }