Pagini recente » Cod sursa (job #398182) | Cod sursa (job #1577133) | Cod sursa (job #574660) | Cod sursa (job #182163) | Cod sursa (job #790061)
Cod sursa(job #790061)
#include<vector>
#include<fstream>
using namespace std;
#define MaxN 50003
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int N,M,IN;
vector<int> G[MaxN];
int viz[MaxN],sol[MaxN];
void dfs(int x){
viz[x]=1;
for(unsigned int i=0;i<G[x].size();i++){
if(!viz[G[x][i]])
dfs(G[x][i]);
}
sol[IN++]=x;
}
int main(){
fin>>N>>M;
int x,y,ok=1;
for(int i=1;i<=M;i++){
fin>>x>>y;
ok=0;
for(unsigned int j=0;j<G[x].size();j++){
if(G[x][j]==y)
ok=1;
}
if(!ok)
G[x].push_back(y);
}
for(int i=1;i<=N;i++){
if(!viz[i]){
dfs(i);
}
}
for(int j=IN-1;j>0;j--){
fout<<sol[j]<<" ";
}
fout<<sol[0]<<"\n";
fin.close();
fout.close();
return 0;
}