Cod sursa(job #1192620)

Utilizator AlexNiuclaeNiculae Alexandru Vlad AlexNiuclae Data 29 mai 2014 13:54:10
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <cstdio>
#define pb push_back
#include <vector>
#define LL long long
#define Nmax 50010

using namespace std;

vector <LL> g[Nmax];
bool sel[Nmax];
LL n,m,i,x,y,c[Nmax],nr;

void load()
 {
    scanf("%lld %lld", &n, &m);
    for (LL i=1;i<=m;++i)
     {
         scanf("%lld %lld", &x, &y);
         g[x].pb(y);
     }

 }

void dfs(LL x)
 {
     LL i;
     sel[x]=true;
     for (i=0;i<g[x].size();++i)
      if (!sel[g[x][i]])
       dfs(g[x][i]);

     c[++nr]=x;

 }

int main()
{
    freopen("sortaret.in","r",stdin);
    freopen("sortaret.out","w",stdout);

    load();

    for (i=1;i<=n;++i)
     if (!sel[i])
       dfs(i);

   for (i=nr;i>=1;--i) printf("%lld ", c[i]);


    return 0;
}