码迷,mamicode.com
首页 > 其他好文 > 详细

PAT:1015. 德才论 (25) AC

时间:2015-02-23 15:27:44      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct Student
{
  char mID[10];
  int de,cai,sum;
  int tag;        //标明是第几类:1德才都们组,2德胜才,3
}STU[100010];

bool cmp(Student a,Student b)    //【warning】不能写STU
{
  if(a.tag!=b.tag)
    return a.tag<b.tag;
  else if(a.sum!=b.sum)
    return a.sum>b.sum;
  else if(a.de!=b.de)
    return a.de>b.de;
  else
    return strcmp(a.mID,b.mID)<0;  //【caution】小于号勿忘!!
}

int main() 
{
  int n,L,H;
  scanf("%d%d%d",&n,&L,&H);
  int m=n;              //m记录有效人数
  for(int i=0 ; i<n ; ++i)
  {
    scanf("%s %d %d",&STU[i].mID,&STU[i].de,&STU[i].cai);
    STU[i].sum=STU[i].cai+STU[i].de;
    if(STU[i].de < L || STU[i].cai < L)        //淘汰的人
    {
      STU[i].tag=5;
      --m;
    }
    else if(STU[i].de >=H && STU[i].cai >=H )
      STU[i].tag=1;
    else if(STU[i].de >=H && STU[i].cai < H )
      STU[i].tag=2;
    else if(STU[i].de < H && STU[i].cai < H && STU[i].de >= STU[i].cai)
      STU[i].tag=3;
    else
      STU[i].tag=4;
  }
  sort(STU,STU+n,cmp);
  printf("%d\n",m);
  for(int i=0 ; i<m ; ++i)
    printf("%s %d %d\n",STU[i].mID,STU[i].de,STU[i].cai);
  return 0;
}

PAT:1015. 德才论 (25) AC

标签:

原文地址:http://www.cnblogs.com/Evence/p/4298060.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!