fork download
  1. #include <bits/stdc++.h>
  2. #define ll long long int
  3. using namespace std;
  4. const ll N = 105;
  5. vector<ll> graph[N];
  6. ll visited[N];
  7. ll level[N];
  8.  
  9. ll bfs(ll src, ll des) {
  10. queue<ll> q;
  11. q.push(src);
  12. visited[src]=1;
  13. while(!q.empty()) {
  14. ll cur = q.front();
  15. q.pop();
  16. for(ll child: graph[cur]) {
  17. if(!visited[child]) {
  18. q.push(child);
  19. visited[child] = 1;
  20. level[child]=level[cur]+1;
  21. }
  22. }
  23. }
  24. return level[des];
  25. }
  26. int main() {
  27. ios_base::sync_with_stdio(false);
  28. cin.tie(0);
  29. ll n,src,des;cin>>n>>src>>des;
  30. for(ll i=0;i<n;i++) {
  31. for(ll j=0;j<n;j++) {
  32. ll x; cin>>x;
  33. if(x==1) {
  34. graph[i+1].push_back(j+1);
  35. }
  36. }
  37. }
  38. cout<<bfs(src, des)<<"\n";
  39. }
  40.  
Success #stdin #stdout 0.01s 5328KB
stdin
4 4 3
0 1 1 1
1 0 1 0
1 1 0 0
1 0 0 0
stdout
2