#include <iostream> #include <vector> using namespace std; vector<int>t[200003]; int n,m,d,a,b,curCol=1,maxCol=0,maxx=0,tmpmax=0,tmpcol=0; int color[200003]; void colorize(int x){ if(color[x]==0){ if(t[x].size()<d){ color[x]=-1; }else{ color[x]=curCol; tmpmax++; for(int i=0;i<t[x].size();i++){ colorize(t[x][i]); } } } } int main() { ios_base::sync_with_stdio(0); cin>>n>>m>>d; for(int i=0;i<m;i++){ cin>>a>>b; t[a].push_back(b); t[b].push_back(a); } for(int i=0;i<=n;i++){ tmpmax=0; colorize(i); if(tmpmax>1){ if(tmpmax>maxx){ maxCol=curCol; maxx=tmpmax; } } curCol++; } if(maxCol==0)cout<<"NIE\n"; else{ cout<<maxx<<endl; for(int i=0;i<=n;i++) if(color[i]==maxCol) cout<<i<<" "; } return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | #include <iostream> #include <vector> using namespace std; vector<int>t[200003]; int n,m,d,a,b,curCol=1,maxCol=0,maxx=0,tmpmax=0,tmpcol=0; int color[200003]; void colorize(int x){ if(color[x]==0){ if(t[x].size()<d){ color[x]=-1; }else{ color[x]=curCol; tmpmax++; for(int i=0;i<t[x].size();i++){ colorize(t[x][i]); } } } } int main() { ios_base::sync_with_stdio(0); cin>>n>>m>>d; for(int i=0;i<m;i++){ cin>>a>>b; t[a].push_back(b); t[b].push_back(a); } for(int i=0;i<=n;i++){ tmpmax=0; colorize(i); if(tmpmax>1){ if(tmpmax>maxx){ maxCol=curCol; maxx=tmpmax; } } curCol++; } if(maxCol==0)cout<<"NIE\n"; else{ cout<<maxx<<endl; for(int i=0;i<=n;i++) if(color[i]==maxCol) cout<<i<<" "; } return 0; } |