/*#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int arr[n + 1];
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
//输入要插入的数
scanf("%d", &arr[n]);
//直接排序
//就变成有序数列了
for (int i = 0; i < n; i++)//n 个数 ,排 n - 1 趟,因为n - 1个数 排好位置了,最后一个数自然就排好位置了
{
for (int j = 0; j < n + 1 - i - 1; j++)//每一趟排 n + 1 - i - 1 次
{
//升序
if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
//输出
for (int i = 0; i < n + 1; i++)
{
printf("%d ", arr[i]);
}
}
//总结:全部输入到数组中 ,最后直接排序,就是有序数列了
*/
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#define NUM 51
int main()
{
int n = 0;//数组中数字的个数
while (~scanf("%d", &n))
{
int arr[NUM] = { 0 };
//输入数组中的元素
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
int insert = 0;
//输入要插入的数
scanf("%d", &insert);
//开始插入
//思路:
//从大数开始比较,发现了 比要插入的数小的数就插入,否则大数往后移
int i = 0;
for (i = n - 1; i >= 0; i--)
{
if (arr[i] > insert)
{
arr[i + 1] = arr[i];//大数向后移
}
else if (arr[i] < insert)
{
arr[i + 1] = insert;//发现了比要插入的数小的数就在其后 插入 ,保持升序
break;
}
}
if (i < 0)//数组中没有比要插入的数小的数。此时,要插入的数就只能放入首端。
{
arr[0] = insert;
}
//打印
for (int j = 0; j < n + 1; j++)
{
printf("%d ", arr[j]);
}
}
return 0;
}