Cod sursa(job #2601040)

Utilizator hudisteanumihaelaHudisteanu Mihaela hudisteanumihaela Data 13 aprilie 2020 17:20:14
Problema Sortare topologica Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <bits/stdc++.h>
#define NMAX 50009

using namespace std;

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

int n,m,contsol,sol[NMAX];
struct nodd
{
    int nrparinti;
    vector <int> copii;
} nod[NMAX];

int main()
{
    int i,j,a,b;
    bool ok;
    fin>>n>>m;
    for(i=1; i<=m; i++)
    {
        fin>>a>>b;
        nod[a].copii.push_back(b);
        nod[b].nrparinti++;
    }

    do
    {
        ok=0;
        for(i=1; i<=n&&ok==0; i++)
            if(nod[i].nrparinti==0)
            {
                ok=1;
                sol[++contsol]=i;
                nod[i].nrparinti=-1;
                for(auto j=nod[i].copii.begin(); j!=nod[i].copii.end(); j++)
                    nod[*j].nrparinti--;
            }
    }while(ok==1);

    for(i=1; i<=n; i++)
        fout<<sol[i]<<' ';

    return 0;
}