Nu aveti permisiuni pentru a descarca fisierul grader_test10.ok

Cod sursa(job #414864)

Utilizator skullLepadat Mihai-Alexandru skull Data 10 martie 2010 17:13:39
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <stdio.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 (int i = 1; i <= g[x].size (); i++)
		if (!viz[g[x][i]])
			df(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;
}