Pagini recente » Cod sursa (job #2701175) | Cod sursa (job #613591) | Cod sursa (job #3243871) | Cod sursa (job #527546) | Cod sursa (job #396491)
Cod sursa(job #396491)
#include <fstream>
#include <vector>
#define NMAX 50100
using namespace std;
vector <int> a[NMAX];
int n, m;
int used[NMAX], sol[NMAX], num;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
void citire() {
fin >> n >> m;
int x, y;
for (int i = 1; i <= m; i++) {
fin >> x >> y;
a[x].push_back(y);
}
}
void DFS(int i) {
for (int j = 0; j < a[i].size(); j++)
if (!used[a[i][j]]) {
int x = a[i][j];
DFS(x);
sol[++num] = x;
used[x] = 1;
}
}
void rezolva() {
int i;
for (i = 1; i <= n; i++)
if (!used[i]) {
DFS(i);
sol[++num] = i;
used[i] = 1;
}
}
void afiseaza() {
for (int i = n; i >= 1; i--)
fout << sol[i] <<' ';
}
int main() {
citire();
rezolva();
afiseaza();
return 0;
}