Cod sursa(job #1192626)

Utilizator Alexa2001Alexa Tudose Alexa2001 Data 29 mai 2014 14:06:07
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
//SORTARE TOPOLOGICA
#include <cstdio>
#include <vector>

using namespace std;
int nr,i,n,m,c[50009],x,y;
vector<int> G[50009];
bool sel[50009];

void dfs(int x)
{
  int 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);

    scanf("%d%d",&n,&m);

    for(i=1;i<=m;++i)
    {
        scanf("%d%d",&x,&y);
        G[x].push_back(y);
      //  G[y].push_back(x);


    }

    for(i=1;i<=n;++i)
    sel[i]=false;

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

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

    printf("%d\n",c[1]);

    return 0;
}