あなたには殺す価値がない…愚かな弟よ…私を殺そうとするなら…憎しみ!憎め!そして醜く生きろ!逃げよう、逃げよう、そして生きていこう!

洛谷题解 P1051 【谁拿了最多奖学金】

其实很水

链接:

P1051 【谁拿了最多奖学金】

注意:

看好信息,不要看漏或看错因为信息很密集

AC代码:

 1 #include<bits/stdc++.h>//头文件
 2 using namespace std;//开辟名称空间
 3 struct st//结构体
 4 {
 5     string na;
 6     int sc1,sc2,jxj,lws;
 7     char gb,xb,bb;
 8 };//分号注意
 9 //以上是定义结构体===========
10 bool cmp(st x,st y)
11 {
12     if(x.jxj>y.jxj || x.jxj==y.jxj && x.bb<y.bb)return true;
13     else return false;
14 }
15 //以上是定义结构体排序规则=======
16 st xs[105];//定义结构数组
17 int N,zjxj;//普通定义
18 int main()//开始
19 {
20     cin>>N;//输入
21     for(int i=0;i<N;i++)
22     {
23         cin>>xs[i].na>>xs[i].sc1>>xs[i].sc2>>xs[i].gb>>xs[i].xb>>xs[i].lws;//输入所以规则
24         xs[i].bb=i;//装入相应编号
25     }
26     for(int i=0;i<N;i++)
27     {
28         //以下为判断==============
29         if(xs[i].sc1>80 && xs[i].lws>=1) xs[i].jxj+=8000;
30         if(xs[i].sc1>85 && xs[i].sc2>80) xs[i].jxj+=4000;
31         if(xs[i].sc1>90) xs[i].jxj+=2000;
32         if(xs[i].sc1>85 && xs[i].xb=='Y') xs[i].jxj+=1000;
33         if(xs[i].sc2>80 && xs[i].gb=='Y') xs[i].jxj+=850;
34         //以上为判断==============
35         zjxj+=xs[i].jxj;//算出最终奖学金,累加
36 }
37     sort(xs,xs+N,cmp);//排序奖学金数量,调用规则
38 
39     cout<<xs[0].na<<endl;//输出最大名字
40     cout<<xs[0].jxj<<endl;//输出最大奖学金
41     cout<<zjxj;//输出总奖学金
42 
43     return 0;//结束
44 }

 

posted @ 2020-02-01 16:51  BiuBiu_Miku  阅读(185)  评论(0编辑  收藏  举报
骗分过样例,暴力出奇迹!