Cod sursa(job #3162779)

Utilizator CipriEuCruceanu Ciprian Constantin CipriEu Data 29 octombrie 2023 20:54:21
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include<bits/stdc++.h>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n, m, x, y, v[50001];
vector<int> g[50001], sol;
queue<int> q;
int main(){
    fin>>n>>m;
    for(int i=1; i<=m; i++){
        fin>>x>>y;
        g[x].push_back(y);
        v[y]++;
    }
    for(int i=1; i<=n; i++){
        if(!v[i]) q.push(i);
    }

    while(!q.empty()){
        int nod = q.front();
        for(int i=0; i<g[nod].size(); i++){
            int dest = g[nod][i];
            v[dest]--;
            if(!v[dest]) q.push(dest);
        }
        sol.push_back(nod);
        q.pop();
    }
    for(int i=0; i<sol.size(); i++)
        fout<<sol[i]<<" ";
}