Pagini recente » Cod sursa (job #3211283) | Cod sursa (job #3228935) | Cod sursa (job #2320045) | Cod sursa (job #1350305) | Cod sursa (job #1226469)
#include <cstdio>
#include <vector>
#define MAXN 50000
#define MAXM 100000
#define pb push_back
using namespace std;
vector <int> G[MAXN+1];
int stack[MAXN+1];
bool mark[MAXN+1];
void DFS(int node) {
mark[node] = true;
for (int i = 0 ; i < G[node].size() ; ++i)
if (!mark[G[node][i]])
DFS(G[node][i]);
stack[++stack[0]] = node;
}
int main() {
FILE *f, *g;
f = fopen("sortaret.in", "r");
g = fopen("sortaret.out", "w");
int n, m, x, y;
fscanf(f, "%d%d", &n, &m);
for (int i = 0 ; i < m ; ++i) {
fscanf(f, "%d%d", &x, &y);
G[x].pb(y);
}
for (int i = 1 ; i <= n ; ++i)
if (!mark[i])
DFS(i);
for (int i = n ; i >= 1 ; --i)
fprintf(g, "%d\n", stack[i]);
fclose(f);
fclose(g);
return 0;
}