Pagini recente » Cod sursa (job #2824442) | Cod sursa (job #3139784) | Cod sursa (job #1102180) | Cod sursa (job #3280323) | Cod sursa (job #2943063)
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
const int nmax = 5 * 1e4;
vector <int> graf[nmax + 1];
vector <int> sol;
bool marked[nmax + 1];
void dfs (int node){
marked[node] = true;
for ( auto neighbour : graf[node])
if (!marked[neighbour]) dfs(neighbour);
sol.push_back (node);
}
int main(){
ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");
int n, m;
fin >> n >> m;
for (int i = 1; i <= m; i++){
int x, y;
fin >> x >> y;
graf[x].push_back(y);
}
for (int i = 1; i <= n; i++)
if (!marked[i])
dfs(i);
reverse(sol.begin(), sol.end());
for (auto solutie : sol)
fout << solutie << " ";
return 0;
}