Cod sursa(job #414861)

Utilizator skullLepadat Mihai-Alexandru skull Data 10 martie 2010 17:09:46
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <studio.h>
#include <vector>
#define nmax 50001
using namespace std;
int n,m,pre[nmax],nr,viz[nmax];
vector<int> g[nmax];

void citire ()
{
	int x,y;
	scanf("%d%d",&n,&m);
	for (int i = 1; i<=m; i++)
	{
		scanf("%d%d",&x,&y);
		g[x].push_back(y);
	}
}

void df (int x)
{
	viz [x] = 1;
	for (i = 1; i <= g[x].size (); i++)
		if (!viz g[x][i])
			dfs(g[x][i])
	pre[++nr]:=x;
}

void solve ()
{
	for (int i = 1; i <=n; i++)
		if (!viz[i])
			df(i);
	for (int i = n; i>0; i--)
		printf("%d",pre[i]);
}

int main ()
{
	freopen("sortaret.in","r",stdin);
	freopen("sortaret.out","w",stdout);
	citire ();
	solve ();
	return 0;
}