Pagini recente » Cod sursa (job #2021125) | Cod sursa (job #2483787) | Cod sursa (job #3264420) | Cod sursa (job #368589) | Cod sursa (job #1523698)
#define MAX 50005
#include <cstdio>
#include <vector>
using namespace std;
vector<int> g[MAX];
int t=1,n,m;
bool f[MAX];
int r[MAX],p[MAX];
void tarjan(int k){
if(f[k])
return;
f[k]=true;
for(int i=0; i<g[k].size(); ++i)
tarjan(g[k][i]);
r[t++]=k;
}
int main(void){
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
scanf("%d%d",&n,&m);
for(int a,b,i=0; i<m; ++i){
scanf("%d%d",&a,&b);
g[a].push_back(b);
}
for(int i=1; i<=n; ++i)
tarjan(i);
for(int i=n; i>=1; --i)
printf("%d ",r[i]);
return 0;
}