Submission #475256

#TimeUsernameProblemLanguageResultExecution timeMemory
475256MohamedAhmed04007 (CEOI14_007)C++14
0 / 100
242 ms23404 KiB
#include <bits/stdc++.h> using namespace std ; const int inf = 1e9 ; const int MAX = 2e5 + 10 ; int arr[MAX] ; int n , m ; int a , b , x , y ; vector< vector<int> >adj(MAX) ; int dist[2][MAX] ; void bfs(int src , int t) { for(int i = 1 ; i <= n ; ++i) dist[t][i] = inf ; queue<int>q ; dist[t][src] = 0 ; q.push(src) ; while(!q.empty()) { int node = q.front() ; q.pop() ; for(auto &child : adj[node]) { if(dist[t][node]+1 < dist[t][child]) { dist[t][child] = dist[t][node]+1 ; q.push(child) ; } } } } int main() { ios_base::sync_with_stdio(0) ; cin.tie(0) ; cin>>n>>m ; cin>>a>>b>>x>>y ; for(int i = 0 ; i < m ; ++i) { int u , v ; cin>>u>>v ; adj[u].push_back(v) ; adj[v].push_back(u) ; } bfs(a , 0) ; bfs(b , 1) ; return cout<<max(-1 , min(dist[1][x] - dist[0][x] , dist[1][y] - dist[0][y]))<<"\n" , 0 ; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...