Pagini recente » Cod sursa (job #789429) | Cod sursa (job #1735054) | Cod sursa (job #2430092) | Cod sursa (job #1510519) | Cod sursa (job #931240)
Cod sursa(job #931240)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#define nmax 50005
using namespace std;
vector <int> vecin[nmax];
vector <int> sol;
bool vizitat[nmax];
void dfs(int curent) {
for(int i=0; i<vecin[curent].size(); i++)
if(!vizitat[vecin[curent][i]])
dfs(vecin[curent][i]);
if(!vizitat[curent]) sol.push_back(curent);
vizitat[curent] = true;
}
int main() {
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int a, b, n, m;
f>>n>>m;
for(int i=1; i<=m; i++) {
f>>a>>b;
vecin[a].push_back(b);
}
for(int i=1; i<=n; i++) dfs(i);
reverse(sol.begin(), sol.end());
for(int i=0; i<sol.size(); i++) g<<sol[i]<<" ";
g<<"\n";
return 0;
}