Pagini recente » Cod sursa (job #2871412) | Cod sursa (job #3179272) | Cod sursa (job #1131096) | Cod sursa (job #3278199) | Cod sursa (job #2781081)
#include<cstdio>
const int N=50001,M=100000,L=2000000;
int m,i,a[M],b[M],*g[N],w[N],u[N],k,n,t,l;
bool v[N];
char p[L];
inline int A()
{
int s=0;
for(;p[t]<48;++t);
for(;p[t]>47;++t)
s=s*10+p[t]-48;
return s;
}
inline void S(int x)
{
int i,d=x>9999?5:x>999?4:x>99?3:x>9?2:1;
for(i=d-1;i>=0;x/=10,--i)
p[l+i]=x%10+48;
p[l+d]=32,l+=d+1;
}
inline void D(int i)
{
int j;
for(v[i]=1,j=0;j<w[i];++j)
if(!v[g[i][j]])
D(g[i][j]);
u[++k]=i;
}
int main()
{
freopen("sortaret.in","r",stdin),freopen("sortaret.out","w",stdout),fread(p,1,L,stdin),n=A(),m=A();
for(i=0;i<m;++i)
a[i]=A(),b[i]=A(),++w[a[i]];
for(i=1;i<=n;w[i++]=0)
g[i]=new int[w[i]];
for(i=0;i<m;++i)
g[a[i]][w[a[i]]++]=b[i];
for(i=1;i<=n;++i)
if(!v[i])
D(i);
for(i=n;i;--i)
S(u[i]);
fwrite(p,1,l,stdout);
return 0;
}