Pagini recente » Cod sursa (job #1094031) | Cod sursa (job #68724) | Cod sursa (job #2032325) | Cod sursa (job #631106) | Cod sursa (job #1508709)
#include <cstdio>
#include <vector>
using namespace std;
const int NMAX = 50005;
vector <int> G[NMAX];
int t[NMAX], q[NMAX];
int main() {
freopen("sortaret.in", "r", stdin);
freopen("sortaret.out", "w", stdout);
int n, m, x, y;
scanf("%d%d", &n, &m);
for(int i = 1; i <= m; ++ i) {
scanf("%d%d", &x, &y);
++ t[y];
G[x].push_back(y);
}
for(int i = 1; i <= n; ++ i) {
if(!t[i])
q[++q[0]] = i;
}
for(int i = 1; i <= n; ++ i) {
printf("%d ", q[i]);
int aux = q[i];
for(int j = 0; j < G[aux].size(); ++ j) {
-- t[G[aux][j]];
if(!t[G[aux][j]])
q[++q[0]] = G[aux][j];
}
}
return 0;
}