PAT 乙级 1015

来源:互联网 发布:淘宝发货提醒短信模板 编辑:程序博客网 时间:2024/06/06 00:41

这题数量较大不能用cin cout(对于我的这种方法)。要用scanf printf。


只是用到了结构体,其他根据题目就可以了。

记得交题格式是c++;

#include<stdio.h>#include<algorithm>#define maxn 100010using namespace std;struct st{int number;int d,c,score;}stu[maxn];st c1[maxn],c2[maxn],c3[maxn],c4[maxn];bool cmp(st a,st b){if(a.score==b.score){if(a.d==b.d)  return a.number<b.number;return a.d>b.d;  }else  return a.score>b.score;}int main(){int a1=0,a2=0,a3=0,a4=0;int n,L,H;scanf("%d %d %d",&n,&L,&H);for(int i=0;i<n;i++){scanf("%d %d %d",&stu[i].number,&stu[i].d,&stu[i].c);if(stu[i].d<L&&stu[i].c<L)  continue;stu[i].score=stu[i].d+stu[i].c;if(stu[i].d>=H&&stu[i].c>=H)  c1[a1++]=stu[i];else if(stu[i].d>=H&&stu[i].c<H&&stu[i].c>=L)  c2[a2++]=stu[i];else if(stu[i].d>=stu[i].c&&stu[i].d>=L&&stu[i].d<H&&stu[i].c>=L&&stu[i].c<H)  c3[a3++]=stu[i];    else  {  if(stu[i].d>=L&&stu[i].c>=L)    c4[a4++]=stu[i];  }      }sort(c1,c1+a1,cmp);sort(c2,c2+a2,cmp);sort(c3,c3+a3,cmp);sort(c4,c4+a4,cmp);printf("%d\n",a1+a2+a3+a4);;for(int i=0;i<a1;i++)  printf("%d %d %d\n",c1[i].number,c1[i].d,c1[i].c);for(int i=0;i<a2;i++)  printf("%d %d %d\n",c2[i].number,c2[i].d,c2[i].c);for(int i=0;i<a3;i++)  printf("%d %d %d\n",c3[i].number,c3[i].d,c3[i].c);for(int i=0;i<a4;i++)  printf("%d %d %d\n",c4[i].number,c4[i].d,c4[i].c);  return 0;}