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; }