Cod sursa(job #2427453)

Utilizator adrianros123Avram Adrian Constantin adrianros123 Data 31 mai 2019 21:24:50
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include<iostream>
#include<fstream>
#include<vector>
#include<queue>

using namespace std;
vector<int> v[50005];
queue<int> coada;
int grad[50005];
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int main()
{
	int n, m, x, y;
	f >> n >> m;
	for (int i = 1; i <= m; i++)
	{
		f >> x >> y;
		v[x].push_back(y);
		grad[y]++;
	}
	for (int i = 1; i <= n; i++)
	{
		if (grad[i] == 0)
			coada.push(i);
	}
	while (!coada.empty())
	{
		int nod = coada.front();
		coada.pop();
		g << nod << " ";
		for (int i = 0; i < v[nod].size(); i++)
		{
			grad[v[nod][i]] --;
			if (grad[v[nod][i]] == 0)
				coada.push(v[nod][i]);
		}
	}
}