Cod sursa(job #2501986)

Utilizator CyborgSquirrelJardan Andrei CyborgSquirrel Data 30 noiembrie 2019 12:26:54
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

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

int n, m;
vector<int> gr[50041];
int ie[50041];

int main(){
	fin >> n >> m;
	for(int i = 0; i < m; ++i){
		int a, b;fin >> a >> b;
		gr[a].push_back(b);
		ie[b]++;
	}
	
	queue<int> qu;
	for(int i = 1; i <= n; ++i){
		if(ie[i] == 0){
			qu.push(i);
		}
	}
	
	while(!qu.empty()){
		int a = qu.front();qu.pop();
		fout << a << " ";
		for(auto b : gr[a]){
			ie[b]--;
			if(ie[b] == 0){
				qu.push(b);
			}
		}
	}
	return 0;
}