1136: 【作】【入门】元素插入有序数组
内存限制:16 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:28
解决:19
题目描述
给你一个整数n和一个数列(数列个数不超过1000),这个数列保证从小到大排列,现要求将这个整数n插入到数列中,使新的数列仍然从小到大排列。
输入
第一行一个整数n :等待插入的数 第二行一个整数m :数列中数的个数 第三行m个整数(空格隔开)
输出
一行整数:新的数列(空格隔开)
样例输入 复制
2
4
1 3 4 5
样例输出 复制
1 2 3 4 5
提示
n=int(input())
m=int(input())
ls=list(map(int,input().split()))
if n<ls[0]:
ls.insert(0,n)
else:
for i in range(m-1):
if n>ls[i] and n<ls[i+1]:
ls.insert(i+1,n)
break
print(' '.join(map(str,ls)))
#include<bits/stdc++.h>
using namespace std;
int n,a[1005],m,k;
int main(){
cin>>n;
cin>>m;
for (int i=1;i<=m;i++)
cin>>a[i];
k=1;
while (a[k]<=n) k++;
for (int i=m+1;i>=k+1;i--)
a[i]=a[i-1];
a[k]=n;
for (int i=1;i<=m+1;i++)
cout<<a[i]<<" ";
return 0;
}