Pagini recente » Cod sursa (job #2588877) | Cod sursa (job #2515982) | Cod sursa (job #1461401) | Cod sursa (job #2394978) | Cod sursa (job #2909008)
#include<iostream>
#include<set>
#include<algorithm>
#include <vector>
#include <fstream>
#include <cstring>
#include <map>
#include <math.h>
#include <queue>
using namespace std;
int n, m;
vector<int> v[55000];
vector<int> grade(55000);
int main () {
ifstream cin ("sortaret.in");
ofstream cout ("sortaret.out");
cin >> n >> m;
for (int i = 1; i<=m; i++){
int a, b;
cin >> a >> b;
v[a].push_back(b);
grade[b]++;
}
queue<int> q;
for (int i = 1; i<=n; i++){
if (grade[i]==0){
q.push(i);
}
}
while (!q.empty()){
int u = q.front();
q.pop();
for (int i = 0; i<v[u].size(); i++){
grade[v[u][i]]--;
if (grade[v[u][i]] == 0){
q.push(v[u][i]);
}
}
cout << u << " ";
}
}