Cod sursa(job #2050854)

Utilizator pibogaBogdan piboga Data 28 octombrie 2017 11:40:29
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.08 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;

vector <int> tab[mxvf];
vector <int> vaf;

void dfs(int nod)
{
    viz[nod]=1;

    vector <int>::iterator it;
    vaf.push_back(nod);

    for ( it=tab[nod].begin();it!=tab[nod].end();++it)
    {
        int need=*it;
        if (!viz[need])
            dfs(need);
    }


}

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

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

        ok=1;

        for(j=0;j<tab[y].size();++j)
        {
            if (tab[x][j]==y)
            {
                ok=0;
                break;
            }
        }

        if (ok) tab[x].push_back(y);

    }

    crt=1;


    dfs(crt);
    sol=1;

    for (i=2;i<=nvf;++i)
    {
        if (!viz[i])
        {
            dfs(i);
        }
    }

    for (i=0;i<vaf.size();++i)
    {
        fout<<vaf[i]<<' ';
    }


}