1136: 【作】【入门】元素插入有序数组

内存限制:16 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:27 解决:18

题目描述

给你一个整数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;
}