fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. const int nax = 10;
  7.  
  8. vector<int> edges[nax];
  9. vector<int> vis(nax);
  10.  
  11. vector<int> sizes;
  12.  
  13. void dfs(int a) {
  14. vis[a] = 1;
  15. for(int b : edges[a]) {
  16. if(vis[b] != 1) {
  17. dfs(b);
  18. }
  19. }
  20. int cnt = 0;
  21. for(int x : vis) {
  22. if(x == 1) {
  23. cnt++;
  24. }
  25. }
  26. sizes.push_back(cnt);
  27. for(int x : vis) {
  28. x = 0;
  29. }
  30. }
  31.  
  32. int main() {
  33. int m;
  34. cin >> m;
  35. for(int i = 0; i < m; ++i) {
  36. int a, b;
  37. cin >> a >> b;
  38. edges[a].push_back(b);
  39. edges[b].push_back(a);
  40. }
  41. for(int i = 0; i < nax; ++i) {
  42. dfs(i);
  43. }
  44. for(int x : sizes) {
  45. cout << x << " ";
  46. }
  47. }
Success #stdin #stdout 0.01s 5280KB
stdin
3
1 2
3 5
3 4
stdout
1 3 3 3 5 6 6 6 6 7 8 9 10