Cod sursa(job #2891648)

Utilizator VladNANegoita Vlad-Andrei VladNA Data 19 aprilie 2022 13:36:17
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>
#include <queue>
#include <vector>

#define NMAX 50005

using namespace std;

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

vector <int> adj[NMAX];
int grade[NMAX];

int main()
{
	int n, m;
	cin >> n >> m;
	for (int i = 1, x, y; i <= m; ++i) {
		cin >> x >> y;
		adj[x].push_back(y);
		++grade[y];
	}

	queue <int> q;
	for (int i = 1; i <= n; ++i)
		if (grade[i] == 0)
			q.push(i);

	while (!q.empty()) {
		int u = q.front();
		cout << u << ' ';
		q.pop();
		for (int v : adj[u]) {
			--grade[v];
			if (grade[v] == 0)
				q.push(v);
		}
	}
	return 0;
}