Pagini recente » Cod sursa (job #1051916) | Cod sursa (job #552252) | Cod sursa (job #3181085) | Cod sursa (job #2559892) | Cod sursa (job #1005385)
#include <stdio.h>
#include <vector>
#define fr(i,a,b) for(int i=a;i<b;++i)
#define N 50000
using namespace std;
vector<int>edges[N];
bool col[N];
int t=0;
int q[N],qlast;
void dfs(int i){
col[i]=true;
fr(v,0,(int)edges[i].size()){
int id=edges[i][v];
if(!col[id]) dfs(id);
}
--qlast;
q[qlast]=i;
}
int main(){
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
int n,m;
scanf("%i%i",&n,&m);
fr(i,0,m){
int a,b;
scanf("%i%i",&a,&b);
--a;--b;
edges[a].push_back(b);
}
qlast=n;
fr(i,0,n) if(!col[i]) dfs(i);
fr(i,0,n) printf("%i ",q[i]+1);
return 0;
}