Pagini recente » Cod sursa (job #2085194) | Cod sursa (job #1274641) | Cod sursa (job #2210820) | Cod sursa (job #2202339) | Cod sursa (job #3331405)
#include <bits/stdc++.h>
using namespace std;
int main() {
freopen("sortaret.in", "r", stdin);
freopen("sortaret.out", "w", stdout);
int N, M;
cin >> N >> M;
vector<vector<int>> g(N + 1);
vector<int> in(N + 1, 0);
for (int i = 0; i < M; i++) {
int x, y;
cin >> x >> y;
g[x].push_back(y);
in[y]++;
}
queue<int> q;
for (int i = 1; i <= N; i++)
if (in[i] == 0) q.push(i);
vector<int> sol;
while (!q.empty()) {
int x = q.front();
q.pop();
sol.push_back(x);
for (int y : g[x]) {
in[y]--;
if (in[y] == 0) q.push(y);
}
}
for (int i = 0; i < sol.size(); i++)
cout << sol[i] << (i + 1 < sol.size() ? ' ' : '\n');
return 0;
}