网站建设公司小猫建站,国内网站建设,什么是平台设计,重庆网站建设设计Promble Description
有n(n100)个整数#xff0c;已经按照从小到大顺序排列好#xff0c;现在另外给一个整数x#xff0c;请将该数插入到序列中#xff0c;并使新的序列仍然有序。
INPUT
输入数据包含多个测试实例#xff0c;每组数据由两行组成#xff0c;第一行…Promble Description
有n(n100)个整数已经按照从小到大顺序排列好现在另外给一个整数x请将该数插入到序列中并使新的序列仍然有序。
INPUT
输入数据包含多个测试实例每组数据由两行组成第一行是n和m第二行是已经有序的n个数的数列。n和m同时为0标示输入数据的结束本行不做处理。
OUTPUT
对于每个测试实例输出插入新的元素后的数列。
问题链接http://acm.hdu.edu.cn/showproblem.php?pid2019
问题分析因为n个数已经排好序所以用循环找到比第一个比m大的值的下标t后把m存到该数组a【t】并把原来数组t开始的数据往后移一位。
AC代码如下
#includeiostream
using namespace std;
int main()
{int n 0, m 0,t0,b0,c0,p0;while (cin n m){if (n){int b[105] { 0 };int a[105] { 0 };for (int i 0; i n; i)cin a[i];for (int i 0; i n; i){if (m a[i]) { t i; p 1; break; }}if (p 1){for (int i t; i n 1; i) { b[i] a[i]; }a[t] m;for (int i t ; i n 1; i)a[i1] b[i];for (int i 0; i n 1; i) { cout a[i]; if (i ! n)cout ; }cout endl;}else{a[n] m;for (int i 0; i n 1; i) { cout a[i]; if (i ! n)cout ; }cout endl;}}else break; }
}