Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- #define N 50000
- vector<int> a[N];
- int users[N];
- int n;
- void dfs(int v, int countt) {
- users[v] = countt;
- for (int j = 1; j <= a[v].size() ; j++) {
- if (users[j] == 0) {
- users[j] = countt;
- dfs(j, countt);
- }
- }
- }
- int main() {
- int n, m;
- cin >> n >> m;
- int countt = 1;
- for (int i = 0; i < m; i++) {
- int a1, a2;
- cin >> a1 >> a2;
- a[a1].push_back(a2);
- a[a2].push_back(a1);
- }
- for (int i = 0; i < n; i++){
- if (users[i] == 0) dfs(i, countt);
- countt++;
- }
- cout << countt << "\n";
- int k = 1;
- for (int i = 0; i < countt; i++) {
- for (int j = 0; i < n; i++) {
- if (users[j] == k) cout << j << " ";
- }
- cout << endl;
- k++;
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment