Cod sursa(job #1192614)

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

using namespace std;

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

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

 }

void dfs(int x)
 {
     int i;
     sel[x]=true;
     for (i=0;i<g[x].size();++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("%d ", c[i]);


    return 0;
}