Cod sursa(job #2679819)

Utilizator WladDalwMvladutu cristian vlad WladDalwM Data 1 decembrie 2020 17:16:02
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <bits/stdc++.h>

using namespace std;

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

bitset<50005>f;
bitset<50005>f2;

vector<int> t;

vector<int>edges[50005];

void dfs(int node)
{
	f[node] = 1;
	for(auto &i: edges[node])
	{
		if(f[i] == 0)
		{
			f[i] = 1;
			dfs(i);
		}
	}
	t.push_back(node);
}
int main()
{
	int n , m;
	in >> n >> m;
	for(int i = 1; i <= m; ++i)
	{
		int a , b;
		in >> a >> b;
		edges[a].push_back(b);
		f2[b] = 1;
	}
	int start = 1;
	for(int i = 1; i <= n; ++i)
	{
		if(f2[i] == 0)
			dfs(i);
	}

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

	return 0;

}