Pagini recente » Cod sursa (job #1939144) | Cod sursa (job #468346) | Cod sursa (job #1435410) | Cod sursa (job #3210690) | Cod sursa (job #3285458)
#include <bits/stdc++.h>
using namespace std;
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
#ifdef INFOARENA
freopen("sortaret.in", "r", stdin);
freopen("sortaret.out", "w", stdout);
#endif
int n, m;
cin >> n >> m;
vector<vector<int>> adjt(n);
vector<int> deg(n);
for(int i = 0; i < m; i++) {
int u, v;
cin >> u >> v;
u--; v--;
adjt[v].emplace_back(u);
deg[u]++;
}
queue<int> q;
for(int i = 0; i < n; i++) if(!deg[i]) {
q.emplace(i);
}
vector<int> ord;
while(!q.empty()) {
int u = q.front();
q.pop();
ord.emplace_back(u);
for(const auto &it : adjt[u]) if(!(--deg[it])) {
q.emplace(it);
}
}
reverse(ord.begin(), ord.end());
for(const auto &it : ord) {
cout << it + 1 << " ";
}
return 0;
}