Advertisement
Zuneve

wwwwavh rmeaj abfxcbzwrt2

Dec 28th, 2022
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <set>
  4. using namespace std;
  5.  
  6. void dfs(int v, vector <vector <int> > &g, vector <char> &used, vector <set<int>> &kk) {
  7. used[v] = true;
  8. for (int i = 0; i < g[v].size(); i++) {
  9. if (!used[g[v][i]]){
  10. dfs(g[v][i], g, used, kk);
  11. kk[g[v][i]].insert(i);
  12. }
  13. }
  14. }
  15.  
  16. int main() {
  17. int n, m;
  18. cin >> n >> m;
  19. vector <vector <int>> g(n);
  20.  
  21. for (int i = 0; i < m; i++){
  22. int u, v;
  23. cin >> u >> v;
  24. u--;
  25. v--;
  26. g[v].push_back(u);
  27. g[u].push_back(v);
  28. }
  29.  
  30. int cmp_cnt = 0;
  31.  
  32. vector <char> used(n, false);
  33. vector <set <int>> kk(n);
  34.  
  35. for (int i = 0; i < n; i++){
  36. if (!used[i]){
  37. dfs(i, g, used, kk);
  38. cmp_cnt++;
  39. }
  40. }
  41.  
  42. cout << cmp_cnt;
  43. for (int i=0; i<n; i++) {
  44. cout << i+1 << endl;
  45. for (int j : kk[i]) {
  46. cout << j << " ";
  47. } cout << endl;
  48. }
  49. return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement