Pagini recente » Cod sursa (job #3237884) | Cod sursa (job #1258738) | Cod sursa (job #1475328) | Cod sursa (job #2647237) | Cod sursa (job #1216508)
#include<fstream>
#include<algorithm>
#include<vector>
using namespace std;
ifstream fi("sortaret.in");
ofstream fo("sortaret.out");
struct info{
int nivel;
int nr;
};
const int max_n = 50004;
vector <int> a[max_n];
int i,n,m,x,y,level;
info t[max_n];
bool comp(info x, info y){ return (x.nivel<y.nivel); }
void dfs(int nod){
level++;
for(unsigned int j=0;j<a[nod].size();j++)
if(t[a[nod][j]].nivel<level){ t[a[nod][j]].nivel=level; dfs(a[nod][j]); }
}
int main(){
fi>>n>>m;
for(i=1;i<=m;i++){
fi>>x>>y;
a[x].push_back(y);
}
for(i=1;i<=n;i++) t[i].nivel=0,t[i].nr=i;
for(i=1;i<=n;i++)
if(!t[i].nivel){
level=0;
dfs(i);
}
sort(t+1,t+n+1,comp);
for(i=1;i<=n;i++) fo<<t[i].nr<<" ";
fi.close();
fo.close();
return 0;
}