Cod sursa(job #2458889)

Utilizator Johnny07Savu Ioan-Daniel Johnny07 Data 21 septembrie 2019 18:48:30
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");

vector <int> lines[50001];
int noduri_incidente[50001];

queue <int> q;


void solve(int siz)
{
	int i, nod, n = 0;
	for (i = 1; i <= siz;i++)
	{
		if (noduri_incidente[i] == 0) q.push(i);
	}
	while (!q.empty())
	{
		nod = q.front();
		q.pop();
		g << nod << " ";
		n = lines[nod].size();
		n--;
		for (i = 0; i <= n; i++)
		{
			noduri_incidente[lines[nod][i]]--;
			if (noduri_incidente[lines[nod][i]] == 0)
			{
				q.push(lines[nod][i]);
			}
		}


	}



}

int main()	
{
	int n, m;
	int i,x,y;
	f >> n >> m;
	cout << n;
	for (i = 1; i <= n; i++)
	{

		f >> x >> y;
		lines[x].push_back(y);
		noduri_incidente[y]++;
		

	}
	
	
	solve(n);
	
	return 0;



}