fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. void dfs (int v, vector <vector <int>>& g, vector<bool>& visited, int& res) {
  5. visited[v] = true; res++;
  6.  
  7. for (int i : g[v]) {
  8. if (!visited[i]) {
  9. dfs(i, g, visited, res);
  10. }
  11. }
  12. }
  13.  
  14. int main() {
  15. cin.tie(0);
  16. ios::sync_with_stdio(false);
  17.  
  18. int n, k;
  19. cin >> n >> k;
  20.  
  21. vector <vector <int>> g(n);
  22. vector <bool> visited(n, false);
  23.  
  24.  
  25. int a, b;
  26. cin >> a;
  27.  
  28. while (a != 0) {
  29. cin >> b;
  30.  
  31. g[a - 1].push_back(b - 1);
  32.  
  33. cin >> a;
  34.  
  35. }
  36.  
  37.  
  38.  
  39. int res = 0;
  40.  
  41. // for (int i = 0; i < n; i++) {cout << i << ": "; for (int q : g[i]) {cout << q;}cout<<"\n";}
  42.  
  43. dfs(k - 1, g, visited, res);
  44.  
  45. if (res == n) {
  46. cout << "Yes";
  47. } else {
  48. cout << "No";
  49. }
  50. return 0;
  51. }
Success #stdin #stdout 0s 5308KB
stdin
4 2
3 1
2 3
0
stdout
No