Cod sursa(job #1115266)

Utilizator HDT_TibiHudema Dumitru Tiberiu HDT_Tibi Data 21 februarie 2014 20:40:08
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
#define MAXA 2000000000
using namespace std;

ifstream fin("bellmanford.in");
ofstream fout("bellmanford.out");

struct Nod{int inf; Nod* leg;};
typedef Nod* nod;

nod a[50005],s;
int n,m,viz[50001];

//void sterg(nod &q){viz[q->inf]=0;nod p=q->leg;delete q; q=p;}
void add(nod &q, int x)
{
	nod p=new Nod;
	p->inf=x;
	p->leg=q;
	q=p;
}

void df(int i)
{
	viz[i]=1;
	for(nod p=a[i];p;p=p->leg) if(!viz[p->inf])df(p->inf);
	add(s,i);
}

int main()
{
	int i,x,y;
	fin>>n>>m;
	for(i=1; i<=m;i++)
	{
		fin>>x>>y;
		add(a[x],y);
	}
	for(i=1; i<=n; i++) if(!viz[i]) df(i);
	while (s){fout<<s->inf<<" ";s=s->leg;}
	return 0;
}