fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define ll long long
  5. #define ul unsigned long long
  6.  
  7. ll mod = 1e9+7;
  8. const int N = 1e5+5;
  9. int MOD = 998244353;
  10. int bit[200000];
  11. int n, m;
  12. int dem = 0;
  13. vector<int> adj[N];
  14. bool visit[N];
  15. void nhap(){
  16. cin >> n >> m;
  17. int x,y;
  18. for(int i= 0 ; i < m ; i++){
  19. cin >> x >> y;
  20. adj[x].push_back(y);
  21. adj[y].push_back(x);
  22. }
  23. }
  24. void bfs(int s) {
  25.  
  26. dem++;
  27.  
  28. queue <int> q;
  29. q.push(s);
  30. visit[s] = true;
  31. while (!q.empty()) {
  32. int u = q.front();
  33. q.pop();
  34. for (int v : adj[u]) {
  35. if (!visit[v]) {
  36. visit[v] = true;
  37. q.push(v);
  38. }
  39. }
  40. }
  41. }
  42. int main() {
  43. //freopen("CSBN.INP", "r", stdin);
  44. //freopen("CSBN.OUT", "w", stdout);
  45. ios_base::sync_with_stdio(0);
  46. cin.tie(0);
  47. cout.tie(0);
  48. nhap();
  49. for(int i=1; i<= n ; i++){
  50. if(!visit[i]){
  51. bfs(i);
  52. }
  53. }
  54. cout << dem;
  55.  
  56. }
  57.  
Success #stdin #stdout 0.01s 5780KB
stdin
7 6
1 2
1 3
2 3
5 6
6 7
5 7
stdout
3