fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. vector <long long> a[100005];
  4. bool visited[100005];
  5. long long n,m;
  6. void bfs(long long i, vector<long long> a[], bool visited[])
  7. {
  8. queue<long long> q;
  9.  
  10. q.push(i);
  11. visited[i] = true;
  12. while (!q.empty())
  13. {
  14. long long u = q.front();
  15. q.pop();
  16. for (long long v : a[u])
  17. {
  18. if (!visited[v])
  19. {
  20. visited[v] = true;
  21. q.push(v);
  22. }
  23. }
  24. }
  25. }
  26. void input()
  27. {
  28. cin >> n >> m;
  29. for (long long i=1; i<=m; i++)
  30. {
  31. long long u,v;
  32. cin >> u >> v;
  33. a[u].push_back(v);
  34. a[v].push_back(u);
  35. }
  36. }
  37. void solve()
  38. {
  39. for (long long i=1; i<=n; i++)
  40. {
  41. visited[i]=false;
  42. }
  43. long long cnt = 0;
  44. for (long long i = 1; i <= n; i++)
  45. {
  46. if (!visited[i])
  47. {
  48. cnt++;
  49. bfs(i,a,visited);
  50. }
  51. }
  52. cout << cnt;
  53. }
  54. int main()
  55. {
  56. ios_base::sync_with_stdio(0);
  57. cin.tie(0);
  58. input();
  59. solve();
  60. }
  61.  
Success #stdin #stdout 0s 5896KB
stdin
Standard input is empty
stdout
Standard output is empty