Pagini recente » Cod sursa (job #1209049) | Cod sursa (job #218538) | Cod sursa (job #1678976) | Cod sursa (job #764128) | Cod sursa (job #2786197)
#include <fstream>
#include <queue>
#include <vector>
#include <stack>
std::ifstream in("sortaret.in");
std::ofstream out("sortaret.out");
const int N = 5e4+1;
std::vector<int> g[N];
int n, m, cnt, res[N];
bool vis[N];
void dfs(int i){
vis[i] = 1;
for(auto node : g[i]){
if(vis[node]) continue;
dfs(node);
}
res[cnt++] = i;
}
int main(){
in>>n>>m;
for(int i=0;i<m;++i){
int a,b;
in>>a>>b;
g[a].push_back(b);
}
for(int i=1;i<=n;++i){
if(vis[i]) continue;
dfs(i);
}
for(int i=cnt-1;i>=0;--i)
out<<res[i]<<' ';
in.close();
out.close();
return 0;
}