Cod sursa(job #1211301)

Utilizator DjokValeriu Motroi Djok Data 22 iulie 2014 12:36:45
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<fstream>
#include<algorithm>
using namespace std;

typedef struct lnod {
      int info;
      lnod *next;  
}*nod;

int n,m,i,x,y;
bool viz[50005];
nod lda[50005],rs;

void add(int x,nod &y) {
   nod p=new lnod;
   p->info=x;
   p->next=y;
   y=p;  
}

void dfs(int x) {
   viz[x]=1;
   for(nod p=lda[x];p;p=p->next)
   if(!viz[p->info]) dfs(p->info);
   add(x,rs);  
}

int main()
{
  ifstream cin("sortaret.in");
  ofstream cout("sortaret.out"); 
  
  cin>>n>>m;
  while(m--)
  cin>>x>>y,add(y,lda[x]);
  
  for(i=1;i<=n;++i)
  if(!viz[i]) dfs(i);
  
  for(nod p=rs;p;p=p->next)
  cout<<p->info<<' ';
  
 return 0;   
}