1030-ACM程序设计之马拉松竞赛

描述

 

ACM协会近四个月举行了为期100ACM程序设计之马拉松竞赛,竞赛题总数为1000,同学们反响热烈,先后有许多ACM程序设计竞赛爱好者报名,这些选手按报名时间从1开始先后编号,成功解答的题目数为选手的成绩。

今天进行成绩统计和颁奖仪式,已知按编号排序的选手成绩(各不相同),根据给定标准成绩将这些选手划为两个部分,小于标准成绩的选手不能获得任何奖项,大于等于标准成绩的选手将得到嘉奖,并依成绩从低到高上台领奖。

输入

 

共三行:

第一行给出选手人数(不超过1000);

第二行依编号从低到高给出选手成绩;

第三行给出标准成绩。

输出

 

共两行:

第一行给出根据标准成绩划分后的选手成绩,小于标准成绩的部分、大于等于标准成绩的部分内部均保持原有的先后顺序。

第二行给出依上台领奖次序排好的获奖选手成绩(没有任何选手上台领奖时,输出空行)。

样例输入

5

230 10 1000 500 399

500

样例输出

230 10 399 1000 500

500 1000

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int n,m;
    cin>>n;
    int a[1001],b[1001],c[1001];
    int i,j=0,k=0;
    for(i=0;i<n;i++)
        cin>>a[i];
    cin>>m;
    for(i=0;i<n;i++)
    {
        if(a[i]<m)
        {
            b[j]=a[i];
            j++;
        }
        else
        {
            c[k]=a[i];
            k++;
        }
    }
    if(k==0) 
    {
        for(i=0;i<j-1;i++)
            cout<<b[i]<<" ";
        cout<<b[j-1]<<endl<<endl;
    }
    else
    {
        for(i=0;i<j;i++)
            cout<<b[i]<<" ";
        for(i=0;i<k-1;i++)
            cout<<c[i]<<" ";
        cout<<c[k-1]<<endl;
        sort(c,c+k);
        for(i=0;i<k-1;i++)
            cout<<c[i]<<" ";
        cout<<c[k-1]<<endl;
    }
    return 0;
}

  

原文地址:https://www.cnblogs.com/Rosanna/p/3436606.html