Submission #1362314

#TimeUsernameProblemLanguageResultExecution timeMemory
1362314frogrammerCurrents (EGOI25_currents)C++20
27 / 100
147 ms13556 KiB
// Online C++ compiler to run C++ program online
#include <bits/stdc++.h>
using namespace std;

int main() {
    int n, m;
    cin>>n>>m;
    vector<vector<int>> adj(n);
    vector<int> dist(n,-1);
    
    int a,b;
    for(int i=0;i<m;i++){
        cin>>a>>b;
        adj[a].push_back(b);
    }
    
    bool direct = 1;
    for(int i=0;i<n-1;i++){
        bool found = 0;
        for(int v : adj[i]){
            if(v==n-1) found = 1;
        }
        if(!found){
            direct = 0;
            break;
        }
    }
    
    queue<int> q;
    dist[0] = 0;
    q.push(0);
    
    while(!q.empty()){
        int node = q.front();q.pop();
        
        for(int v : adj[node]){
            if(dist[v]==-1){
                dist[v] = dist[node]+1;
                q.push(v);
            }
        }
    }
    for(int i=0;i<n-1;i++){
        if(i!=0) cout<<" ";
        int res;
        if(!direct) res = 2*n-4-i;
        else res = dist[i];
        cout<<max(1,res);
    }
    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...