Pagini recente » Cod sursa (job #2338819) | Cod sursa (job #1814209) | Cod sursa (job #130955) | Cod sursa (job #2403216) | Cod sursa (job #2384978)
#include <fstream>
constexpr int MAX_N = 100001, MAX_M = 200001;
int n, m;
int start[MAX_N], next[MAX_M], at[MAX_M], count;
bool vis[MAX_N], r[MAX_N];
int t[MAX_N], tCount;
inline void add(int from, int to) {
++count;
at[count] = to;
next[count] = start[from];
start[from] = count;
}
inline void tSort(int x) {
vis[x] = true;
for (int p = start[x]; p != 0; p = next[p]) if (!vis[at[p]]) tSort(at[p]);
t[++tCount] = x;
}
int main() {
std::ifstream in("sortaret.in");
std::ofstream out("sortaret.out");
int i, x, y;
in >> n >> m;
for (i = 0; i < m; ++i) {
in >> x >> y;
add(x, y);
r[y] = true;
}
for (i = 1; i <= n; ++i) if (!r[i]) tSort(i);
for (i = n; i >= 1; --i) out << t[i] << ' ';
return 0;
}