Cod sursa(job #2526167)

Utilizator rares9991Matisan Rares-Stefan rares9991 Data 18 ianuarie 2020 12:16:24
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>

using namespace std;

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

const int N=50001;
const int M=2*N;

int n,m, lst[N], vf[2*M], urm[2*M], sorttop[N], nr,s, ns;
bool viz[N];

void adauga(int x, int y)
{
    vf[++nr]=y;
    urm[nr]=lst[x];
    lst[x]=nr;
}

void dfs(int x)
{
   viz[x]=true;
   int y;
   for(int p=lst[x]; p!=0; p=urm[p])
   {
     y=vf[p];
     if(!viz[y])
     dfs(y);
   }
   sorttop[++ns]=x;
}

int main()
{
    fin>>n>>m;
    for(int i=1; i<=m; i++)
    {
       int x, y;
       fin>>x>>y;
       adauga(x,y);
    }
    dfs(1);
    for(int i=ns; i>=1; i--)
    fout<<sorttop[i]<<" ";
    return 0;
}