Pagini recente » Cod sursa (job #767700) | Cod sursa (job #1689131) | Cod sursa (job #2172278) | Cod sursa (job #265987) | Cod sursa (job #2417385)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("sortaret.in");
ofstream g ("sortaret.out");
const int Dim = 1e5 + 5;
vector <int> G[Dim];
int grad[Dim];
int n, m;
queue <int> coada;
int main() {
f >> n >> m;
for (int i = 1; i <= m; ++ i) {
int x, y; f >> x >> y;
G[x].push_back (y);
++ grad[y];
}
for (int i = 1; i <= n; ++ i) {
if (grad[i] == 0)
coada.push (i);
}
while (!coada.empty()) {
int node = coada.front();
coada.pop();
for (auto it: G[node]) {
-- grad[it];
if (grad[it] == 0) {
coada.push (it);
}
}
g << node << " ";
}
return 0;
}