Cod sursa(job #2811949)

Utilizator sireanu_vladSireanu Vlad sireanu_vlad Data 3 decembrie 2021 17:55:22
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>
#include <vector>
using namespace std;

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

int n, m, k, topo[50001];
bool f[50001];
vector<int> g[50001];

void read()
{
	int x, y;
	in >> n >> m;
	while(m--)
		in >> x >> y,
		g[x].push_back(y);
}

void dfs(int nod)
{
	f[nod] = 1;
	for(auto i : g[nod])
		if(!f[i])
			dfs(i);
	topo[++k] = nod;
}

void afis()
{
	for(int i = k; i > 0; --i)
		out << topo[i] << ' ';
}

int main()
{
	read();
	for(int i = 1; i <= n; ++i)
		if(!f[i])
			dfs(i);
	afis();
	return 0;
}