Cod sursa(job #486689)

Utilizator ClasianMunteanu Petre Clasian Data 22 septembrie 2010 15:19:52
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<cstdio>
using namespace std;
struct nod { int info;
			 nod* lg;
			}*vf[1001],*r;
int n,temp,t[1001],use[1001];
void DF(int i)
{ use[i]=1;
  for(nod* p=vf[i];p;p=p->lg) if(!use[p->info])DF(p->info);
  t[++temp]=i;
}
int main()
{ freopen("st.in","r",stdin);
  freopen("st.out","w",stdout);
  int m,i,a,b;
  scanf("%d%d",&n,&m);
  //for(i=1;i<=n;i++) vf[i]=0;
  for(i=1;i<=m;i++) { scanf("%d%d",&a,&b);
					  r=new nod;
					  r->info=b;
					  r->lg=vf[a];
					  vf[a]=r;
					}
  for(i=1;i<=n;i++) if(!use[i])DF(i);
  while(temp)printf("%d ",t[temp--]);
  return 0;
}