Cod sursa(job #2300065)

Utilizator PescaruVictorPescaru Victor PescaruVictor Data 10 decembrie 2018 20:21:42
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("sortaret.in");
ofstream fout("sortaret.out");

int n, m, prim, ultim;
int in[50005], c[50005];
vector <int> L[50005];


int main()
{
    int nod, a, b;
    fin>>n>>m;
    for(int i=1; i<=m; ++i)
    {
        fin>>a>>b;
        L[a].push_back(b);
        ++in[b];
    }
    for(int i=1; i<=n; ++i)
        if(!in[i])
            c[++ultim] = i;
    prim = 1;
    while(prim <= ultim)
    {
        nod = c[prim++];
        fout<<nod<<' ';
        for(int i=0; i<L[nod].size(); ++i)
        {
            --in[L[nod][i]];
            if(in[L[nod][i]] == 0)
                c[++ultim] = L[nod][i];
        }
    }
    return 0;
}