//Geeksun 2017.11.28 0 : 26
//此模拟链表并不完善,当增加的值为最小值时程序会出错,需加一条判断语句。
#include <stdio.h>
int main()
{
int data[101],right[101];
int i,t,n,len,flag = 0;
scanf("%d",&n);
for(i = 0;i < n;i++)
{
scanf("%d",&data[i]);
}
len = n;
for(i = 0;i < n;i++)
{
right[i] = i + 1;
}
right[n - 1] = -1;
scanf("%d",&data[len]);
t = 0;
while(t != -1)
{
if(data[right[t]] > data[len])
{
right[len] = right[t];
right[t] = len;
flag = 1;
break;
}
t = right[t];
}
if(flag == 0)
{
right[n - 1] = n;
right[n] = -1;
}
t = 0;
while(t != -1)
{
printf("%d ",data[t]);
t = right[t];
}
return 0;
}
{
int data[101],right[101];
int i,t,n,len,flag = 0;
scanf("%d",&n);
for(i = 0;i < n;i++)
{
scanf("%d",&data[i]);
}
len = n;
for(i = 0;i < n;i++)
{
right[i] = i + 1;
}
right[n - 1] = -1;
scanf("%d",&data[len]);
t = 0;
while(t != -1)
{
if(data[right[t]] > data[len])
{
right[len] = right[t];
right[t] = len;
flag = 1;
break;
}
t = right[t];
}
if(flag == 0)
{
right[n - 1] = n;
right[n] = -1;
}
t = 0;
while(t != -1)
{
printf("%d ",data[t]);
t = right[t];
}
return 0;
}