Cod sursa(job #622260)

Utilizator batistaUPB-Oprea-Cosmin-Dumitru batista Data 17 octombrie 2011 18:26:42
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<fstream>
using namespace std;
int n,m,i,x,y;
struct nod{int info;nod*adr;}*v[500001],*p;
int viz[500001],viz1[500001],vs[500001],k;
ofstream g("sortaret.out");
void dfsort(int nod)
{
	viz[nod]=1;
	while(v[nod])
	{
		if(!viz[v[nod]->info]) dfsort(v[nod]->info);
		v[nod]=v[nod]->adr;
	}
	vs[++k]=nod;
}
int main()
{
	ifstream f("sortaret.in");
	f>>n>>m;
	for(i=1;i<=m;i++)
	{
		f>>x>>y;
		viz1[y]=1;
		p=new nod;
		p->info=y; p->adr=v[x]; v[x]=p;
	}
	for(i=1;i<=n;i++)
	if(!viz1[i])
	{
	 dfsort(i);
	 break;
	}
	for(i=n;i>=1;i--) g<<vs[i]<<" ";
	f.close();g.close();
return 0;}