Cod sursa(job #897263)

Utilizator erik95Scharscher Erik erik95 Data 27 februarie 2013 19:41:19
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
struct nod {
		int inf;
        nod*adr;}*p,*v[50001],*adresa;
int i,j,t[50001],n,m,x,y,sol[50001],nr;
void insert(int x)
	{
	p=new nod;
    p->inf=x;
    p->adr=adresa;
    adresa=p;
	}	

void DF(int x)
	{t[x]=1;
    for (p=v[x];p;p=p->adr)
        if(t[p->inf]==0)
              DF(p->inf);
    insert(x);
	}
int main()
{f>>n>>m;
for(i=1;i<=m;i++)
	{f>>x>>y;
	p=new nod;
	p->inf=x;
	p->adr=v[y];
	v[y]=p;
	}
for(i=1;i<=n;i++)
	if(t[i]==0)
        DF(i);
for(p=adresa;p;p=p->adr)  
	{nr++;
	sol[nr]=p->inf;
	}
for(i=n;i>=1;i--)
	cout<<sol[i]<<" ";
return 0;
}