NOJ1030ACM程序设计之马拉松竞赛

/*ACM程序设计之马拉松竞赛
时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 1158            测试通过 : 261 
比赛描述

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

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



输入


共三行:
第一行给出选手人数(不超过1000);
第二行依编号从低到高给出选手成绩;
第三行给出标准成绩。
输出


共两行:
第一行给出根据标准成绩划分后的选手成绩,小于标准成绩的部分、大于等于标准成绩的部分内部均保持原有的先后顺序。
第二行给出依上台领奖次序排好的获奖选手成绩(没有任何选手上台领奖时,输出空行)。
样例输入

						
						5
230 10 1000 500 399
500
					
样例输出

						
						230 10 399 1000 500
500 1000
					*/




#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int cmp(const void *a,const void *b)
{
    return *(int *)a-*(int*)b;
}
int main()
{
    int cases,test[1001],biao,pai[1001],m,i,first=1,temp=0;
    memset(pai,-1,sizeof(pai));
    scanf("%d",&cases);
    int p=0;
    m=cases;
    while(cases--)
    {
        scanf("%d",&test[p++]);
    }
    p=0;
    scanf("%d",&biao);
    for(i=0;i<m;i++)
    {
        if(test[i]<biao){ temp=1;if(first) {printf("%d",test[i]);first=0;}else printf(" %d",test[i]);
        }
            
    }
    first=1;
     for(i=0;i<m;i++)
    {
        if(test[i]>=biao){if(temp){printf(" %d",test[i]);pai[p++]=test[i];  } else if(first){printf("%d",test[i]);first=0;pai[p++]=test[i]; }else{ printf(" %d",test[i]);pai[p++]=test[i];}}
    }
  
    putchar('\n');
    qsort(pai,1001,sizeof(pai[0]),cmp);
    first=1;
    for(i=0;i<1001;i++)
    {
        if(pai[i]>=0){if(first) {printf("%d",pai[i]);first=0;} else printf(" %d",pai[i]);
        }

    }
   putchar('\n');
    return 0;
}
//气死我了!!!wa了11次也不知道为什么! PE了两次 .
//最后找陈叔叔终于ac了,因为是first没初始化,在本地测试没影响 ,first的值是4199705,但是在noj上却是0,大概和不同环境编译有关 。 
 //一开始wa是数组开小了,题目没看清,是1000看错成100. 

你可能感兴趣的:(NOJ1030ACM程序设计之马拉松竞赛)