fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. void dfs (int v, vector <vector <int>>& g, vector<bool>& visited, int& res) {
  6. visited[v] = true;
  7. res++;
  8.  
  9. for (auto i : g[v]) {
  10. if (!visited[i]) {
  11. dfs(i, g, visited, res);
  12. }
  13. }
  14.  
  15. }
  16.  
  17. int main()
  18. {
  19. int n, me;
  20. cin >> n >> me;
  21.  
  22. vector <vector <int>> g(n + 1, vector <int> ());
  23.  
  24. for (int i = 1; i <= n; i++) {
  25. for (int j = 1; j <= n; j++) {
  26. bool t;
  27. cin >> t;
  28.  
  29. if (t) {
  30. g[i].push_back(j);
  31. }
  32. }
  33. }
  34.  
  35. int res = -1;
  36. vector <bool> visited(n + 1, false);
  37.  
  38.  
  39. dfs(me, g, visited, res);
  40.  
  41. cout << res;
  42. return 0;
  43. }
Success #stdin #stdout 0s 5316KB
stdin
3 1
0 1 0
1 0 1
0 1 0
stdout
2