#include<stdio.h>
inline void fastread(int*);
int main(){
int i,j,l1,l2,u1,u2,n,size = 1;
int *a;
a
= (int*)malloc(sizeof(int)*n
); int *aux;
aux
= (int*)malloc(sizeof(int)*n
); for(i=0;i<n;i++){
fastread(&a[i]);
}
while(size<n){
l1=0;//lowe limit of 1st array
register int k=0;
while(l1+size<n){
l2 = l1+size;//lower limit of second array
u1 = l2-1;//upper limit of first array
u2 = (l2+size-1<n)?l2+size-1:n-1;//upper limit of second array
for(i=l1,j=l2;i<=u1&&j<=u2;k++){
if(a[i]<=a[j])
aux[k]=a[i++];
else
aux[k]=a[j++];
}
for(;i<=u1;k++)
aux[k]=a[i++];
for(;j<=u2;k++)
aux[k]=a[j++];
l1 = u2+1;
}
for(i=l1;k<n;i++)
aux[k++] = a[i];
for(i=0;i<n;i++)
a[i] = aux[i];
size = size*2;
}
for(i=0;i<n;i++)
return 0;
}
inline void fastread(int*a)
{
register char c=0;
*a =0;
while(c>33)
{
*a = *a*10+c-'0';
}
}
I2luY2x1ZGU8c3RkaW8uaD4KaW5saW5lIHZvaWQgZmFzdHJlYWQoaW50Kik7CmludCBtYWluKCl7CiAgICBpbnQgaSxqLGwxLGwyLHUxLHUyLG4sc2l6ZSA9IDE7CiAgICBpbnQgKmE7CiAgICBzY2FuZigiJWQiLCZuKTsKICAgIGEgPSAoaW50KiltYWxsb2Moc2l6ZW9mKGludCkqbik7CiAgICBpbnQgKmF1eDsKICAgIGF1eCA9IChpbnQqKW1hbGxvYyhzaXplb2YoaW50KSpuKTsKICAgIGZvcihpPTA7aTxuO2krKyl7CiAgICAgICAgZmFzdHJlYWQoJmFbaV0pOwogICAgfQogICAgd2hpbGUoc2l6ZTxuKXsKICAgICAgICBsMT0wOy8vbG93ZSBsaW1pdCBvZiAxc3QgYXJyYXkKICAgICAgICByZWdpc3RlciBpbnQgaz0wOwogICAgICAgIHdoaWxlKGwxK3NpemU8bil7CiAgICAgICAgICAgIGwyID0gbDErc2l6ZTsvL2xvd2VyIGxpbWl0IG9mIHNlY29uZCBhcnJheQogICAgICAgICAgICB1MSA9IGwyLTE7Ly91cHBlciBsaW1pdCBvZiBmaXJzdCBhcnJheQogICAgICAgICAgICB1MiA9IChsMitzaXplLTE8bik/bDIrc2l6ZS0xOm4tMTsvL3VwcGVyIGxpbWl0IG9mIHNlY29uZCBhcnJheQogICAgICAgICAgICBmb3IoaT1sMSxqPWwyO2k8PXUxJiZqPD11MjtrKyspewogICAgICAgICAgICAgICAgaWYoYVtpXTw9YVtqXSkKICAgICAgICAgICAgICAgICAgICBhdXhba109YVtpKytdOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIGF1eFtrXT1hW2orK107CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yKDtpPD11MTtrKyspCiAgICAgICAgICAgICAgICBhdXhba109YVtpKytdOwogICAgICAgICAgICBmb3IoO2o8PXUyO2srKykKICAgICAgICAgICAgICAgIGF1eFtrXT1hW2orK107CiAgICAgICAgICAgIGwxID0gdTIrMTsKICAgICAgICB9CiAgICAgICAgZm9yKGk9bDE7azxuO2krKykKICAgICAgICAgICAgYXV4W2srK10gPSBhW2ldOwogICAgICAgIGZvcihpPTA7aTxuO2krKykKICAgICAgICAgICAgYVtpXSA9IGF1eFtpXTsKICAgICAgICBzaXplID0gc2l6ZSoyOwogICAgfQogICAgZm9yKGk9MDtpPG47aSsrKQogICAgICAgIHByaW50ZigiJWRcbiIsYVtpXSk7CiAgICByZXR1cm4gMDsKfQppbmxpbmUgdm9pZCBmYXN0cmVhZChpbnQqYSkKewogICByZWdpc3RlciBjaGFyIGM9MDsKICAgd2hpbGUgKGM8MzMpIGM9Z2V0Y2hhcigpOwogICAqYSA9MDsKICAgd2hpbGUoYz4zMykKICAgewogICAgICAgKmEgPSAqYSoxMCtjLScwJzsKICAgICAgIGM9Z2V0Y2hhcigpOwogICB9Cn0K