Cod sursa(job #2428449)

Utilizator Joystick6208Catalin Topala Joystick6208 Data 5 iunie 2019 12:39:25
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <cstdio>
using namespace std;

#define maxsize 10005

int n, m, x, y;
int gr[maxsize][maxsize];
int c[maxsize], deg[maxsize];

void sort()
{
	int u;

	for(int i = 1; i <= n; ++i)
		if(deg[i] == 0)
			c[++c[0]] = i;

	for(int i = 1; i <= n; ++i)
		for(int j = 1; j <= gr[c[i]][0]; ++j)
		{
			u = gr[c[i]][j];

			--deg[u];
			if(deg[u] == 0)
				c[++c[0]] = u;
		}
}

int main()
{

	scanf("%d %d", &n, &m);

	for(int i = 0; i < m; ++i)
	{
		scanf("%d %d", &x, &y);

		++gr[x][0];
		gr[x][gr[x][0]] = y;
		++deg[y];
	}
	
	sort();

	for(int i = 1; i <= n; ++i)
		printf("%d ", c[i]);

	return 0;
}