Pagini recente » Borderou de evaluare (job #2353742) | Cod sursa (job #2239160) | Cod sursa (job #1988611) | Cod sursa (job #1631222) | Cod sursa (job #3248523)
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
ifstream in ("sortaret.in");
ofstream out ("sortaret.out");
vector <int> nod[100005];
stack <int> order;
int viz[100005];
int n,m;
void dfs(int s){
viz[s]=1;
for(int i=0;i<nod[s].size();i++){
if(!viz[nod[s][i]]){
dfs(nod[s][i]);
}
}
order.push(s);
}
int main(){
in>>n>>m;
for(int i=1;i<=m;i++){
int x;
int y;
in>>x>>y;
nod[x].push_back(y);
}
for(int i=1;i<=n;i++){
if(viz[i]==0){
dfs(i);
}
}
while(!(order.empty())){
out<<order.top()<<" ";
order.pop();
}
return 0;
}