Pagini recente » Cod sursa (job #2420247) | Cod sursa (job #2427328) | Cod sursa (job #2420106) | Cod sursa (job #1513252) | Cod sursa (job #1839383)
#include <fstream>
#include <vector>
#define NMAX 50000
#define MMAX 100000
using namespace std;
bool vizitat[NMAX];
vector<int> result;
vector<int> vecini[NMAX];
void DFS(int source) {
vizitat[source] = true;
for (int i = 0; i < vecini[source].size(); ++ i) {
if (!vizitat[vecini[source][i]]) {
DFS(vecini[source][i]);
}
}
result.push_back(source);
}
int main() {
freopen("sortaret.in", "r", stdin);
freopen("sortaret.out", "w", stdout);
int noduri, muchii;
scanf("%d%d", &noduri, &muchii);
for (int i = 0; i < muchii; ++ i) {
int x, y;
scanf("%d%d", &x, &y);
vecini[x].push_back(y);
}
for (int i = 1; i <= noduri; ++ i) {
if (!vizitat[i]) {
DFS(i);
}
}
for (int i = result.size() - 1; i >= 0; -- i) {
printf("%d ", result[i]);
}
printf("\n");
return 0;
}