Advertisement
Guest User

Untitled

a guest
Oct 10th, 2015
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.58 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #include <cstdio>
  4.  
  5. int k[1000][1000];
  6. int map[1000][1000];
  7. int vi[1000];
  8. int n;
  9.  
  10. void dfs(int x) {
  11. for (int i = 1; i <= map[x][0]; i++) {
  12. if (!vi[map[x][i]]) {
  13. vi[map[x][i]] = 1;
  14. dfs(map[x][i]);
  15. break;
  16. }
  17. }
  18. }
  19.  
  20. int main() {
  21. scanf("%d", &n);
  22. for (int i = 0; i < n; i++) {
  23. scanf("%d", &map[i][0]);
  24. for (int j = 1; j <= map[i][0]; j++) {
  25. scanf("%d", &map[i][j]);
  26. }
  27. }
  28.  
  29. int ans = 0;
  30. for (int i = 0; i < n; i ++) {
  31. if (!vi[i]) {
  32. ans ++;
  33. vi[i] = 1;
  34. dfs(i);
  35. }
  36. }
  37. printf("%d\n", ans);
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement