Advertisement
Dennnhhhickk

Untitled

Jul 2nd, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. int a[100000], b[100000];
  5. int fnd(int i)
  6. {
  7. if (i == b[i])
  8. return i;
  9. else
  10. return b[i] = fnd(b[i]), b[i];
  11. }
  12.  
  13. int main()
  14. {
  15. int n, m, k, ii, jj, ans = 0, fii, fjj;
  16. cin >> n >> m >> k;
  17. k--;
  18. if (k == 0)
  19. ans = n;
  20. for (int i = 0; i < n; i++)
  21. b[i] = i;
  22. for (int i = 0; i < m; i++)
  23. {
  24. cin >> ii >> jj;
  25. ii--;
  26. jj--;
  27. fii = fnd(ii);
  28. fjj = fnd(jj);
  29. if (fii != fjj)
  30. {
  31. b[fjj] = fii;
  32. if (a[fii] < k && a[fii] + a[fjj] + 1 >= k)
  33. ans++;
  34. if (a[fjj] >= k)
  35. ans--;
  36. a[fii] += a[fjj] + 1;
  37. a[fjj] = 0;
  38. }
  39. cout << ans << endl;
  40. }
  41. return 0;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement