Pagini recente » Cod sursa (job #1977553) | Cod sursa (job #566656) | Istoria paginii onis-2014/clasament/runda-3 | Cod sursa (job #967744) | Cod sursa (job #2347864)
#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];
int A()
{
int s=0;
for(;p[t]<'0'||p[t]>'9';t++);
for(;p[t]>='0'&&p[t]<='9';t++)
s=s*10+p[t]-'0';
return s;
}
void S(int b)
{
char e[100];
int j;
for(j=0;b;b/=10,j++)
e[j]=b%10+'0';
for(j--;j>=0;j--)
p[l++]=e[j];
p[l++]=' ';
}
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);
}