#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; } |
English