fork download
  1. #include <iostream>
  2. #include<bits/stdc++.h>
  3.  
  4. using namespace std;
  5.  
  6. int n,m;
  7.  
  8. void prov(int i,vector<vector<int>> &adj,vector<int> &visit)
  9. {
  10. if(visit[i])return;
  11.  
  12. visit[i]=true;
  13.  
  14. for(auto x: adj[i])
  15. {
  16. prov(x,adj,visit);
  17. }
  18.  
  19. return;
  20. }
  21.  
  22. int main() {
  23.  
  24. cin>>n>>m;
  25.  
  26.  
  27. vector<int> visit (n+1,0);
  28.  
  29. vector<vector<int>>adj(n+1);
  30.  
  31. vector<vector<int>>arr(m, vector<int>(2));
  32.  
  33. for(int i=0;i<m;i++)
  34. {
  35.  
  36. cin>>arr[i][0]>>arr[i][1];
  37.  
  38. }
  39.  
  40. for(int i=0;i<m;i++)
  41. {
  42. adj[arr[i][0]].push_back(arr[i][1]);
  43. adj[arr[i][1]].push_back(arr[i][0]);
  44. }
  45.  
  46. int count=0;
  47. vector<int>city;
  48.  
  49. for(int i=1;i<n;i++)
  50. {
  51. if(!visit[i])
  52. {
  53. count++;
  54. prov(i,adj,visit);
  55. city.push_back(i);
  56. }
  57. }
  58.  
  59. cout<< count-m<<endl;
  60.  
  61. for(int i=0;i<city.size()-1;i++)
  62. {
  63. cout<<city[i]<<city[i+1]<<endl;
  64. }
  65. }
Success #stdin #stdout 0.01s 5288KB
stdin
4 2
1 2
3 4
stdout
0
13