Cod sursa(job #1855921)

Utilizator ArkinyStoica Alex Arkiny Data 24 ianuarie 2017 13:03:24
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<fstream>
#include<vector>
using namespace std;

ifstream in("sortaret.in");
ofstream out("sortaret.out");

int viz[50010];

vector<int> stk;

vector<int> G[50010];

void sort_top(int x)
{
	viz[x] = 1;

	for (int i = 0; i < G[x].size(); ++i)
		if (!viz[G[x][i]])
			sort_top(G[x][i]);

	stk.push_back(x);
}

int main()
{

	int N, M;

	in >> N >> M;

	for (int i = 1; i <= M; ++i)
	{
		int x, y;

		in >> x >> y;

		G[x].push_back(y);

	}

	for (int i = 1; i <= N; ++i)
	{
		if (!viz[i])
			sort_top(i);

	}

	for (int i = stk.size() - 1; i >= 0; --i)
		out << stk[i] << " ";

	return 0;
}