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
SOLUTIE
#include<fstream> using namespace std; ifstream cin("gradmax.in"); ofstream cout("gradmax.out"); int n,a[101][101]; void citire() { cin>>n; int x,y; while(cin>>x && cin>>y) a[x][y] = 1; } int g[101],k = 0,maxim = 0; int main() { citire(); for(int i=1;i<=n;i++) { int grad = 0; for(int j=1;j<=n;j++) if(a[i][j] || a[j][i]) grad++; if(grad > maxim) maxim = grad; } for(int i=1;i<=n;i++) { int grad = 0; for(int j=1;j<=n;j++) if(a[i][j] || a[j][i]) grad++; if(grad == maxim) g[++k] = i; } cout<<k<<" "; for(int i=1;i<=k;i++) cout<<g[i]<<" "; }