Cod sursa(job #2668634)

Utilizator gunther41Ionut Buzamat Alexandru gunther41 Data 5 noiembrie 2020 06:10:21
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>
using namespace std;

ifstream f("sortaret.in");
ofstream o("sortaret.out");

int n,m,k,rez[50009];
struct snod
{
    int parinte;
    vector <int> copil;
}nod[50009];


int main()
{
    int i,j,a,b;
    f>>n>>m;
    for(i=1; i<=m; i++)
    {
        f>>a>>b;
        nod[a].copil.push_back(b);
        nod[b].parinte++;
    }

    for(i=1;i<=n;i++)
        if(nod[i].parinte==0)
        rez[++k]=i;
    for(i=1;i<=n;i++)
        for(j=0;j<nod[rez[i]].copil.size();j++)
    {
        nod[nod[rez[i]].copil[j]].parinte--;
        if(nod[nod[rez[i]].copil[j]].parinte==0)
            rez[++k]=nod[rez[i]].copil[j];
    }

    for(i=1; i<=n; i++)
        o<<rez[i]<<' ';

    return 0;
}