fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. typedef long long int ll;
  4. //#define mx = 500005;
  5. vector<ll> grp[500005];
  6. ll vis[500005] = {0};
  7. ll dfs(ll v, ll c)
  8. {
  9. vis[v] = 1;
  10. c++;
  11. for (ll u : grp[v])
  12. {
  13. if (!vis[u])
  14. c = dfs(u, c);
  15. }
  16. return c;
  17. }
  18. int main()
  19. {
  20. ios_base::sync_with_stdio(false);
  21. cin.tie(NULL);
  22. ll i, j, k, t, ip;
  23.  
  24. // cin>>t;
  25. // while(t--)
  26. {
  27. ll n, p, a, b, c, d, x, y, z, q, r, m;
  28. double d1, d2;
  29. //string s;
  30. vector<ll> v;
  31. cin >> n >> d;
  32. for (i = 0; i < d; i++)
  33. {
  34. cin >> x >> y;
  35. grp[x].push_back(y);
  36. grp[y].push_back(x);
  37. }
  38. ll s = 0;
  39. ll kc = 0, pa = 0;
  40.  
  41. for (i = 1; i <= n; i++)
  42. {
  43. if (vis[i] == 0)
  44. {
  45. c = dfs(i, 0);
  46. if (c == 1)
  47. {
  48. s++;
  49. }
  50. else
  51. {
  52. pa += ceil(c / 5.0);
  53. kc++;
  54. }
  55. }
  56. }
  57. pa += s;
  58. cout << kc << " " << pa << "\n";
  59. }
  60. return 0;
  61. }
  62.  
Success #stdin #stdout 0s 15412KB
stdin
6 7
1 2
1 6
1 5
2 3
6 3
6 4
5 4
stdout
1 2