Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <vector>
- using namespace std;
- ifstream fin("bac.in");
- const int NLIM = 1005;
- vector < int > Muchii[NLIM];
- int k;
- int Grad[NLIM];
- bool Vizitat[NLIM];
- void DFS(int Nod)
- {
- Vizitat[Nod] = true;
- Grad[Nod] = 0;
- for(int i = 0; i < Muchii[Nod].size(); i++)
- {
- int Vecin = Muchii[Nod][i];
- Grad[Vecin]--;
- if(!Vizitat[Vecin] && Grad[Vecin] < k)
- DFS(Vecin);
- }
- }
- int main()
- {
- int n, m;
- fin >> n >> m >> k;
- for(int i = 1; i <= m; i++)
- {
- int x, y;
- fin >> x >> y;
- Muchii[x].push_back(y);
- Muchii[y].push_back(x);
- }
- for(int i = 1; i <= n; i++)
- {
- Grad[i] = Muchii[i].size();
- cout << Muchii[i].size() << " ";
- }
- cout << "\n";
- for(int i = 1; i <= n; i++)
- {
- int grad = Muchii[i].size();
- if(grad < k && !Vizitat[i])
- DFS(i);
- }
- int k = 0;
- for(int i = 1; i <= n; i++)
- {
- if(!Vizitat[i] && Grad[i])
- {
- cout << i << " ";
- k++;
- }
- }
- if(k == 0)
- cout << "NU";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement