Pagini recente » Cod sursa (job #2368538) | Cod sursa (job #1050092) | Cod sursa (job #2511732) | Cod sursa (job #2526259) | Cod sursa (job #2354435)
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector <int> x[50005];
vector <int> top;
bool vizitat[50005];
int n;
void citire(){
int m,l,i,j;
fin>>n>>m;
for(l=1;l<=m;l++){
fin>>i>>j;
x[i].push_back(j);
}
}
void afisare(){
int i,j;
for(i=1;i<=n;i++){
cout << i << " --- ";
for(j=0;j<x[i].size();j++) cout << x[i][j] << " ";
cout << endl;
}
}
void dfs(int iacum){
vizitat[iacum]=true;
int i,j;
top.push_back(iacum);
for(i=0;i<x[iacum].size();i++)
if(!vizitat[x[iacum][i]])
dfs(x[iacum][i]);
}
void prelucrare(){
int i,j;
for(i=1;i<=n;i++) vizitat[i]=false;
for(i=1;i<=n;i++){
if(!vizitat[i])
dfs(i);
}
}
int main(){
citire();
//afisare();
prelucrare();
for(int i=0;i<top.size();i++) fout << top[i] << " ";
return 0;
}