Pagini recente » Cod sursa (job #1629765) | Cod sursa (job #1359615) | Cod sursa (job #2907348) | Cod sursa (job #2511068) | Cod sursa (job #507897)
Cod sursa(job #507897)
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <vector>
#include <list>
#define maxn 100000
#define maxm 50000
using namespace std;
vector<int> *v = new vector<int> [maxn];
vector <int> colors (maxn);
list<int> final;
void dfs(int i)
{
colors[i] = 1;
for (size_t j = 0; j < v[i].size(); j++) {
if (colors[v[i][j]] == 0)
dfs(v[i][j]);
}
final.push_front(i);
}
int main() {
unsigned int i, x, y, n, m;
FILE *f = fopen("sortaret.in", "rt");
FILE *g = fopen("sortaret.out", "wt");
fscanf(f , "%d%d", &n, &m);
for (i = 0; i < m; i++) {
fscanf(f, "%d%d", &x, &y);
v[--x].push_back(--y);
}
for (i = 0; i<n; i++) {
if (colors[i] == 0)
dfs(i);
}
for (list<int>::iterator it = final.begin(); it != final.end(); it++)
fprintf(g, "%d " , *it + 1);
fclose(f);
fclose(g);
return 0;
}