Pagini recente » Cod sursa (job #1408995) | Cod sursa (job #942172) | Cod sursa (job #701788) | Cod sursa (job #2554872) | Cod sursa (job #2501820)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n, m, a, b;
int l[50005];
vector<int> graph[50005];
queue<int> Q;
void citire() {
f >> n >> m;
for (int i = 1; i <= m; ++i) {
f >> a >> b;
graph[a].push_back(b);
l[b]++;
}
for (int i = 1; i <= n; ++i) {
if (!l[i]) {
Q.push(i);
}
}
}
void rezolvare() {
int sus;
while (!Q.empty()) {
sus = Q.front();
Q.pop();
g << sus << ' ';
for (auto &v:graph[sus]) {
l[v]--;
if (!l[v])
Q.push(v);
}
}
}
int main() {
citire();
rezolvare();
return 0;
}