Pagini recente » Borderou de evaluare (job #804923) | Cod sursa (job #815668) | Cod sursa (job #2547283) | Cod sursa (job #3238577) | Cod sursa (job #3253688)
#include <iostream>
#include <fstream>
#include <vector>
const int MAXN=5e4;
std::vector<int> muchii[MAXN+1];
int topsort[MAXN];
int k=0;
char viz[MAXN+1];
void dfs(int u){
viz[u]=1;
for(auto e : muchii[u])
if(!viz[e])
dfs(e);
topsort[k++]=u;
}
int main()
{
std::ifstream cin("sortaret.in");
std::ofstream cout("sortaret.out");
int n, m, i, u, v;
cin>>n>>m;
for(i=0; i<m; i++){
cin>>u>>v;
muchii[u].push_back(v);
}
for(i=1; i<=n; i++)
if(!viz[i])
dfs(i);
for(i=n-1; i>=0; i--)
cout<<topsort[i]<<" ";
return 0;
}