数列有序!

数列有序!

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 86011    Accepted Submission(s): 36108


Problem Description
有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。
 

Input
输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0标示输入数据的结束,本行不做处理。
 

Output
对于每个测试实例,输出插入新的元素后的数列。
 

Sample Input
3 3 1 2 4 0 0
 

Sample Output
1 2 3 4
 


#include <iostream>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <algorithm>
#include <stdlib.h>
using namespace std;

int main()
{
    int n,m;
    while(cin>>n>>m){
        int ar[109];
        int flag = 0; //以防多次插入
        if(n==0&&m==0) break;
        else if(n==0&&m!=0) ar[0] = m; //情况1
        else {
            for(int i = 0;i<n+1;i++){
                cin>>ar[i];
                if(ar[i]>=m&&flag == 0){//情况2
                    int x = ar[i];
                    ar[i]=m;
                    ar[i+1] = x;
                    i++;
                    flag = 1;
                }
                else if(i==n-1&&ar[i]<=m){//情况3
                    ar[i+1]=m;
                    i++;
                }
            }
        }
        for(int i = 0;i<n+1;i++){
            if(i==0) cout<<ar[i];
            else cout<<" "<<ar[i];
        }
        cout<<endl;
    }
}


posted @ 2017-02-27 19:33  link98  阅读(121)  评论(0)    收藏  举报