Cod sursa(job #2050919)

Utilizator pibogaBogdan piboga Data 28 octombrie 2017 12:06:39
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include <fstream>
#include <algorithm>
#include <vector>
#define mxvf 50002

using namespace std;

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

bool viz[mxvf],ok;
int i,z,nvf,nmc,crt,x,y;
int afis[mxvf],sol,j,deg[mxvf],need;

vector <int> tab[mxvf];
vector <int> vaf;
vector <int>::iterator itaf;



int main()
{
    fin >> nvf >> nmc  ;

    for (i=1;i<=nmc;++i)
    {
        fin >> x >> y;

        tab[x].push_back(y);
        ++deg[y];

    }

    for (i=1;i<=nvf;++i)
    {
        if (!deg[i])
        {
            vaf.push_back(i);
        }
    }

    for (i=0;i<=vaf.size();++i)
    {
        crt=vaf[i];
        for (itaf=tab[i].begin();itaf<tab[i].end();++itaf)
        {
            --deg[*itaf];
            if (!deg[*itaf])
                vaf.push_back(*itaf);
        }
    }

    for (itaf=vaf.begin();itaf<vaf.end();++itaf)
    {
        need=*itaf;
        fout<<need<<' ';
    }


}