Pagini recente » Cod sursa (job #2782005) | Cod sursa (job #1810305) | Cod sursa (job #2755798) | Cod sursa (job #2156712) | Cod sursa (job #2709388)
#include <iostream>
#include <vector>
#include <stack>
using namespace std;
// Sortare topologica
vector<stack<short>> nodes;
void parcurge(short index) {
if (nodes[index].empty() || nodes[index].top() != -1) {
for (; nodes[index].size(); nodes[index].pop())
parcurge(nodes[index].top());
cout << index << ' ';
nodes[index].push(-1);
}
}
int main() {
freopen("sortaret.in", "r", stdin);
freopen("sortaret.out", "w", stdout);
int n, m, x, y;
scanf("%d %d", &n, &m);
nodes = vector<stack<short>>(n + 1);
while (m--) {
scanf("%d %d", &x, &y);
nodes[y].push(x);
}
for (x = 1; x <= n; x++)
parcurge(x);
return 0;
}