Submission #1361528

#TimeUsernameProblemLanguageResultExecution timeMemory
1361528yyc000123Currents (EGOI25_currents)C++20
0 / 100
2 ms1348 KiB
#include<bits/stdc++.h>
using namespace std ;
const int N = 2e5+5 ;
const int M = 5e5+5 ;
int n , m , dis[N] , ans[N] ;
vector<int> nei[N] , renei[N] ;

void bfs(int node){
    queue<int> q ;
    q.push(node) ;
    while(!q.empty()){
        int k = q.front() ; q.pop() ;
        for(int i:nei[k]){
            if(i==node || dis[i]) continue ;
            dis[i]=dis[k]+1 ;
            q.push(i) ;
        }
    }
}

void weibfs(int node){
    priority_queue<pair<int,int>> pq ;
    memset(ans,0x3f,sizeof(ans)) ;
    for(int i:renei[node]) ans[i]=dis[i] , pq.push({-dis[i],i}) ;
    while(!pq.empty()){
        int k = pq.top().second ; pq.pop() ;
        ;
    }
}

int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0) ;
    cin >> n >> m ;
    for(int i=0 ; i<m ; i++){
        int a , b ; cin >> a >> b ;
        nei[a].push_back(b) ; renei[b].push_back(a) ;
    }
    bfs(0) ;
    weibfs(n-1) ;
    for(int i=0 ; i<n-1 ; i++) cout << ans[i] << ' ' ;
    cout << '\n' ;
    return 0 ;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...