Pagini recente » Cod sursa (job #3272103) | Cod sursa (job #2368713) | Cod sursa (job #1511811) | Cod sursa (job #3264376) | Cod sursa (job #3139063)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
const int Max = 50000 + 1;
vector<int>G[Max];
vector<bool>viz(Max, false);
vector<int>lista;
void dfs(int start) {
viz[start] = true;
for (auto i : G[start])
if (!viz[i]) {
dfs(i);
}
lista.push_back(start);
}
int main() {
int n, m;
f >> n >> m;
for (int i = 1; i <= m; ++i) {
int x, y;
f >> x >> y;
G[x].push_back(y);
}
for (int i = 1; i <= n; ++i)
if (!viz[i])
dfs(i);
for (int i = lista.size() - 1; i >= 0; --i)
g << lista[i] << " ";
return 0;
}