Pagini recente » Cod sursa (job #2055972) | Cod sursa (job #1067725) | Cod sursa (job #1269070) | Cod sursa (job #2005296) | Cod sursa (job #2045588)
#include<fstream>
#include<bitset>
#include<list>
#include<deque>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
const int VMAX=50005;
list<int>g[VMAX];
bitset<VMAX>visited;
deque<int>sol;
int vertices,edges;
void read_data(){
int from,to;
fin>>vertices>>edges;
while(edges--){
fin>>from>>to;
g[from].push_back(to);
}
}
void DFS(int v){
visited[v]=true;
list<int>:: iterator next_node;
for(next_node=g[v].begin();next_node!=g[v].end();++next_node)
if(!visited[*next_node])
DFS(*next_node);
sol.push_back(v);
}
void solve(){
int i;
for(i=1;i<=vertices;++i)
if(!visited[i])
DFS(i);
}
void print(){
while(!sol.empty()){
fout<<sol.back()<<' ';
sol.pop_back();
}
}
int main(){
read_data();
solve();
print();
}