Pagini recente » Borderou de evaluare (job #1244179) | Borderou de evaluare (job #2103241) | Cod sursa (job #2501986)
#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;
}