#include <bits/stdc++.h>
using namespace std;
const int R = 2e5 + 1;
const int INF = 1e9;
bool jest[R];
int rozm[R];
vector<int> t[R], wor, odp;
void dfs(int x){
jest[x] = false;
wor.push_back(x);
for(int i=0;i<int(t[x].size());i++){
if(jest[t[x][i]])dfs(t[x][i]);
}
}
int main(){
int n, m, d;
scanf("%d%d%d",&n,&m,&d);
for(int i=0;i<m;i++){
int a, b;
scanf("%d%d",&a,&b);
t[a].push_back(b);
t[b].push_back(a);
}
for(int i=1;i<=n;i++){
rozm[i] = t[i].size();
if(rozm[i] < d)wor.push_back(i);
else jest[i] = true;
}
while(!wor.empty()){
int akt = wor.back();
wor.pop_back();
for(int i=0;i<int(t[akt].size());i++){
rozm[t[akt][i]]--;
if(jest[t[akt][i]] && rozm[t[akt][i]] < d){
wor.push_back(t[akt][i]);
jest[t[akt][i]] = false;
}
}
}
for(int i=1;i<=n;i++){
if(jest[i]){
for(int j=0;j<int(t[i].size());j++){
while(!jest[t[i][j]]){
swap(t[i][j], t[i].back());
t[i].pop_back();
}
}
}
else t[i].clear();
}
for(int i=1;i<=n;i++){
if(jest[i]){
wor.clear();
dfs(i);
if(wor.size() > odp.size()){
odp.clear();
for(int j=0;j<int(wor.size());j++){
odp.push_back(wor[j]);
}
}
}
}
if(odp.empty())printf("NIE");
else{
sort(odp.begin(), odp.end());
printf("%d\n",odp.size());
for(int i=0;i<int(odp.size());i++){
printf("%d ",odp[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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | #include <bits/stdc++.h> using namespace std; const int R = 2e5 + 1; const int INF = 1e9; bool jest[R]; int rozm[R]; vector<int> t[R], wor, odp; void dfs(int x){ jest[x] = false; wor.push_back(x); for(int i=0;i<int(t[x].size());i++){ if(jest[t[x][i]])dfs(t[x][i]); } } int main(){ int n, m, d; scanf("%d%d%d",&n,&m,&d); for(int i=0;i<m;i++){ int a, b; scanf("%d%d",&a,&b); t[a].push_back(b); t[b].push_back(a); } for(int i=1;i<=n;i++){ rozm[i] = t[i].size(); if(rozm[i] < d)wor.push_back(i); else jest[i] = true; } while(!wor.empty()){ int akt = wor.back(); wor.pop_back(); for(int i=0;i<int(t[akt].size());i++){ rozm[t[akt][i]]--; if(jest[t[akt][i]] && rozm[t[akt][i]] < d){ wor.push_back(t[akt][i]); jest[t[akt][i]] = false; } } } for(int i=1;i<=n;i++){ if(jest[i]){ for(int j=0;j<int(t[i].size());j++){ while(!jest[t[i][j]]){ swap(t[i][j], t[i].back()); t[i].pop_back(); } } } else t[i].clear(); } for(int i=1;i<=n;i++){ if(jest[i]){ wor.clear(); dfs(i); if(wor.size() > odp.size()){ odp.clear(); for(int j=0;j<int(wor.size());j++){ odp.push_back(wor[j]); } } } } if(odp.empty())printf("NIE"); else{ sort(odp.begin(), odp.end()); printf("%d\n",odp.size()); for(int i=0;i<int(odp.size());i++){ printf("%d ",odp[i]); } } return 0; } |
English