Mai intai trebuie sa te autentifici.

Cod sursa(job #2905951)

Utilizator ispir_andreiIspir andrei ispir_andrei Data 24 mai 2022 17:39:29
Problema Sortare topologica Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>
#include <queue>

using namespace std; 

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

const int N = 1e4;
vector<int> a[N + 1];
int nrp[N];

int main()
{
	int n, m;
	in >> n >> m;

	for (int i = 0; i < m; i++)
	{
		int x, y;
		in >> x >> y;
		a[x].push_back(y);
		nrp[y]++;
	}
	queue<int> q;
	
	for (int i = 1; i <= n; i++)
	{
		if (nrp[i] == 0)
		{
			q.push(i);
		}
	}

	while (!q.empty())
	{
		int x = q.front();
		out << x << " ";
		q.pop();

		for (auto y : a[x])
		{
			nrp[y]--;
			if (nrp[y] == 0)
			{
				q.push(y);
			}
		}
	}
}