#include<bits/stdc++.h>
using namespace std;
const int M = 1000007;
vector<int> v[M];
int S[M];
bool T[M];
bool W[M];
vector<int> naj, akt;
int maksi = 0;
int n, m, k;
void znajdz(int x) {
if(S[x]<k) {
T[x] = 1;
for(int j = 0; j < v[x].size(); j++) {
S[v[x][j]]--;
if(S[v[x][j]]<k and !T[v[x][j]]) znajdz(v[x][j]);
}
}
}
void dfs(int x, int l) {
akt.push_back(x);
T[x] = 1;
for(int i = 0; i < v[x].size(); i++) {
if(!T[v[x][i]]) dfs(v[x][i], l+1);
}
}
int main() {
scanf("%d%d%d", &n, &m, &k);
int a, b;
for(int i = 0; i < m; i++) {
scanf("%d%d", &a, &b);
v[a].push_back(b);
v[b].push_back(a);
S[a]++;
S[b]++;
}
for(int i = 1; i <= n; i++)
if(!T[i]) znajdz(i);
for(int i = 1; i <= n; i++) {
if(!T[i]) dfs(i, 1);
if(akt.size()>=k and akt.size()>maksi) {
maksi = akt.size();
naj.clear();
naj = akt;
akt.clear();
}
}
if(maksi<k){ printf("NIE\n"); return 0;}
printf("%d\n", maksi);
sort(naj.begin(), naj.end());
for(int i = 0; i < naj.size(); i++) printf("%d ", naj[i]);
}
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 | #include<bits/stdc++.h> using namespace std; const int M = 1000007; vector<int> v[M]; int S[M]; bool T[M]; bool W[M]; vector<int> naj, akt; int maksi = 0; int n, m, k; void znajdz(int x) { if(S[x]<k) { T[x] = 1; for(int j = 0; j < v[x].size(); j++) { S[v[x][j]]--; if(S[v[x][j]]<k and !T[v[x][j]]) znajdz(v[x][j]); } } } void dfs(int x, int l) { akt.push_back(x); T[x] = 1; for(int i = 0; i < v[x].size(); i++) { if(!T[v[x][i]]) dfs(v[x][i], l+1); } } int main() { scanf("%d%d%d", &n, &m, &k); int a, b; for(int i = 0; i < m; i++) { scanf("%d%d", &a, &b); v[a].push_back(b); v[b].push_back(a); S[a]++; S[b]++; } for(int i = 1; i <= n; i++) if(!T[i]) znajdz(i); for(int i = 1; i <= n; i++) { if(!T[i]) dfs(i, 1); if(akt.size()>=k and akt.size()>maksi) { maksi = akt.size(); naj.clear(); naj = akt; akt.clear(); } } if(maksi<k){ printf("NIE\n"); return 0;} printf("%d\n", maksi); sort(naj.begin(), naj.end()); for(int i = 0; i < naj.size(); i++) printf("%d ", naj[i]); } |
English