Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.78 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int a[101][101], n, nrc, viz[101], x[101];
  6.  
  7. ifstream fin ("componenteconexe1.in");
  8. ofstream fout ("componenteconexe1.out");
  9.  
  10. void Citire()
  11. {
  12. int i, j;
  13. fin >> n;
  14. while (fin >> i >> j)
  15. a[i][j] = a[j][i] = 1;
  16. fin.close();
  17. }
  18.  
  19. void DFS(int k)
  20. {
  21. viz[k] = 1;
  22. for (int i = 1; i <= n; i++)
  23. if (!viz[i] && a[k][i])
  24. DFS(i);
  25. }
  26.  
  27.  
  28. void Rezolvare()
  29. {
  30. DFS(1);
  31. int i, nr = 0;
  32. for (i = 2; i <= n; i++)
  33. if (!viz[i])
  34. {
  35. nr++;
  36. x[i] = i;
  37. DFS(i);
  38. }
  39. fout << nr << "\n";
  40. for (i = 1; i <= n; i++)
  41. if (x[i] == i) fout << "1 " << x[i] << "\n";
  42. }
  43.  
  44. int main()
  45. {
  46. Citire();
  47. Rezolvare();
  48. return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement