Advertisement
Emiliatan

d813

Jul 23rd, 2019
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.75 KB | None | 0 0
  1. /* d813             */
  2. /* AC (0.1s, 336KB) */
  3. #include <cstdio>
  4. #include <cstring>
  5.  
  6. using namespace std;
  7.  
  8. int relation[50010];
  9.  
  10. int _find(int _p)
  11. {
  12.     if(relation[_p] == _p) return _p;
  13.     else return relation[_p] = _find(relation[_p]);
  14. }
  15.  
  16. int main()
  17. {
  18.     for(int n, m, t = 1, cnt = 0; ~scanf("%d %d", &n, &m) && (n || m); ++t, cnt = 0)
  19.     {
  20.         bool relate[50010];
  21.         memset(relate, false, sizeof(relate));
  22.         for(int i = 1; i <= n; relation[i] = i, ++i);
  23.  
  24.         for(int c = 0, i, j; c < m && scanf("%d %d", &i, &j); ++c, relation[_find(i)] = _find(j));
  25.  
  26.         for(int i = 1; i <= n; ++i)
  27.             if(!relate[_find(i)]){ cnt++; relate[_find(i)] = true; }
  28.         printf("Case %d: %d\n", t, cnt);
  29.     }
  30.     return 0;
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement