Cod sursa(job #2658253)

Utilizator BogdanTicuTicu Bogdan Valeriu BogdanTicu Data 13 octombrie 2020 16:11:02
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.55 kb
#include <bits/stdc++.h>

using namespace std;

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

vector<int> graf[50005];
queue<int> q;
int degree[50005];

int main()
{
	int n,m;
	in>>n>>m;
	for(int i=1;i<=n;i++)
	{
		int x,y;
		in>>x>>y;
		graf[x].push_back(y);
		degree[y]++;
	}
	for(int i=1;i<=n;i++)
		if(degree[i]==0)
			q.push(i);
	while(!q.empty())
	{
		out<<q.front()<<" "; 
		int copie=q.front();
		q.pop();
		for(int i=1;i<=n;i++)
		{
			for(auto j:graf[copie])
			{
				degree[j]--;
				if(degree[j]==0)
					q.push(j);
			}
		}
	}
	return 0;
}