游客 Signup | Login
中文 | En

1187 - C语言7.11

给定一个从小到大有序的整数序列,将其保存至数组。另外输入一个整数,将其插入至这个数组中并保持数组有序。

Input

第一行有一个正整数n,表示原始的整数序列长度为n,保证n不超过50。

第二行有n个整数,表示原始的整数序列,保证这个序列是从小到大给出的。
第三行有一个整数,表示需要插入的整数。

Output

在一行中输出n+1个整数,表示完成插入的整数序列。每个整数后输出一个空格。

请注意行尾输出换行。

Examples

Input

10
1 2 3 4 5 6 7 9 10 11
8

Output

1 2 3 4 5 6 7 8 9 10 11 

Solution C

#include<stdio.h>
int main(){
	int n,m;
	int a[50];
	int i,j;
	scanf("%d",&n);
	for(i=0;i<n;i++)
		scanf("%d",&a[i]);
	scanf("%d",&m);
	for(i=0;i<n;i++){
		if(a[i]>m)
			break;
	}
	for(j=n;j>i;j--)
		a[j]=a[j-1];
	a[i]=m;
	for(i=0;i<n+1;i++)
		printf("%d ",a[i]);
	printf("\n");
	return 0;
}

Solution C++

#include <stdio.h>
int main() {
	int dat[51];
	int n, i, j, insert;
	scanf("%d", &n);
	for (i = 0;i < n;i++)
		scanf("%d", &dat[i]);
	scanf("%d", &insert);
	i = 0;
	while (i < n && dat[i] < insert)
		i++;
	for (j = n;j > i;j--)
		dat[j] = dat[j - 1];
	dat[i] = insert;
	for (i = 0;i < n + 1;i++)
		printf("%d ", dat[i]);
	puts("");
	return 0;
}

Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题