fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm> // for sort
  4.  
  5. using namespace std;
  6.  
  7. vector<int> ke[1001];
  8. bool visited[1001];
  9.  
  10. void DFS(int u){
  11. visited[u] = true;
  12. for(int v : ke[u]){
  13. if(!visited[v]){
  14. DFS(v);
  15. }
  16. }
  17. }
  18.  
  19. int main(){
  20. int n, m;
  21. cin >> n >> m;
  22. for(int i = 0; i < m; i++){
  23. int x, y;
  24. cin >> x >> y;
  25. ke[x].push_back(y);
  26. ke[y].push_back(x);
  27. }
  28. for(int i = 1; i <= n; i++){
  29. sort(ke[i].begin(), ke[i].end());
  30. }
  31. int dem = 0;
  32. for(int i = 1; i <= n; i++){
  33. if(!visited[i]){
  34. DFS(i);
  35. dem++;
  36. }
  37. }
  38. cout << dem;
  39. return 0;
  40. }
  41.  
Success #stdin #stdout 0.01s 5304KB
stdin
5 4
4 1
2 1
3 2
4 3
stdout
2