vijos P1001 谁拿了最多奖学金

描述

某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同:

1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得;

2) 五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得;

3) 成绩优秀奖,每人2000元,期末平均成绩高于90分(>90)的学生均可获得;

4) 西部奖学金,每人1000元,期末平均成绩高于85分(>85)的西部省份学生均可获得;

5) 班级贡献奖,每人850元,班级评议成绩高于80分(>80)的学生干部均可获得;

只要符合条件就可以得奖,每项奖学金的获奖人数没有限制,每名学生也可以同时获得多项奖学金。例如姚林的期末平均成绩是87分,班级评议成绩82分,同时他还是一位学生干部,那么他可以同时获得五四奖学金和班级贡献奖,奖金总数是4850元。

现在给出若干学生的相关数据,请计算哪些同学获得的奖金总数最高(假设总有同学能满足获得奖学金的条件)。

格式

输入格式

输入的第一行是一个整数N(1 <= N <= 100),表示学生的总数。接下来的N行每行是一位学生的数据,从左向右依次是姓名,期末平均成绩,班级评议成绩,是否是学生干部,是否是西部省份学生,以及发表的论文数。姓名是由大小写英文字母组成的长度不超过20的字符串(不含空格);期末平均成绩和班级评议成绩都是0到100之间的整数(包括0和100);是否是学生干部和是否是西部省份学生分别用一个字符表示,Y表示是,N表示不是;发表的论文数是0到10的整数(包括0和10)。每两个相邻数据项之间用一个空格分隔。

输出格式

输出包括三行,第一行是获得最多奖金的学生的姓名,第二行是这名学生获得的奖金总数。如果有两位或两位以上的学生获得的奖金最多,输出他们之中在输入文件中出现最早的学生的姓名。第三行是这N个学生获得的奖学金的总数。

样例1

样例输入1

4
YaoLin 87 82 Y N 0
ChenRuiyi 88 78 N Y 1
LiXin 92 88 N N 0
ZhangQin 83 87 Y N 1

样例输出1

ChenRuiyi
9000
28700

限制

1s

AC代码如下:

/*
vijos P1001 谁拿了最多奖学金201701020023
*/
#include<iostream>
#include<string.h>
using namespace std;#define N 100
#define studentNumber 100struct Student{
//    char name[20];string name;                // 姓名int lastGrade;                // 期末平均成绩int grade;                    // 班级评议成绩char isStudentCadres;        // 是否是学生干部char isWestStudent;            // 否是西部省份学生int paperNumber;            // 发表的论文数int money;
}student[studentNumber], result;int main(void){int studentNumber2;int i = 0, sumMoney = 0;//院士奖学金 五四奖学金 成绩优秀奖 西部奖学金 班级贡献奖   多写了,就先放着吧 int acadeScholarship = 0,youthScholarship = 0,achievementAward = 0,westernScholarship = 0,classContributionAward = 0;//    result.name = "";//    cout << "请输入一个数字:" << endl;cin >> studentNumber2;//    cout << "请输入" << studentNumber2 << "条信息" << endl;while(i < studentNumber2){student[i].money = 0;cin >> /*student[i].name*/ student[i].name >> student[i].lastGrade >> student[i].grade >> student[i].isStudentCadres \>> student[i].isWestStudent >> student[i].paperNumber;//院士奖学金if((student[i].lastGrade > 80) & (student[i].paperNumber >= 1)){acadeScholarship++;student[i].money += 8000;}//五四奖学金if((student[i].lastGrade > 85) & (student[i].grade > 80)){youthScholarship++;student[i].money += 4000;}//成绩优秀奖if(student[i].lastGrade > 90){achievementAward++;student[i].money += 2000; } //西部奖学金if((student[i].lastGrade > 85) & (student[i].isWestStudent == 'Y')){westernScholarship++;student[i].money += 1000; } //班级贡献奖if((student[i].grade > 80) & (student[i].isStudentCadres == 'Y')){classContributionAward++;student[i].money += 850; }//找出奖金最高的赋值给result if(i == 0){result.money = student[i].money;}else{if(result.money < student[i].money){result.name = student[i].name;result.money =  student[i].money;}}//所有人的奖金 sumMoney += student[i].money; i++;}cout << endl;cout << result.name << endl << result.money << endl << sumMoney << endl; //    for(i = 0; i < studentNumber2; i++){
//        cout << /*student[i].name*/ student[i].name << student[i].lastGrade << student[i].grade << student[i].isStudentCadres \
//        << student[i].isWestStudent << student[i].paperNumber << endl;
//    }return 0;
}

转载于:https://www.cnblogs.com/libra-yong/p/6241996.html

vijos P1001 谁拿了最多奖学金相关推荐

  1. Bailian2715 谁拿了最多奖学金【分段计算处理】(Vijos P1001)

    描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以 ...

  2. 信息学奥赛一本通 1839:【05NOIP提高组】谁拿了最多奖学金 | OpenJudge NOI 1.9 04:谁拿了最多奖学金 | 洛谷 P1051 [NOIP2005 提高组] 谁拿了最多奖学金

    [题目链接] ybt 1839:[05NOIP提高组]谁拿了最多奖学金 OpenJudge NOI 1.9 04:谁拿了最多奖学金 洛谷 P1051 [NOIP2005 提高组] 谁拿了最多奖学金 [ ...

  3. 信息奥赛一本通(1839:【05NOIP提高组】谁拿了最多奖学金)

    1839:[05NOIP提高组]谁拿了最多奖学金 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 1853     通过数: 811 [题目描述] 某校的惯例是在每 ...

  4. 信息学奥赛一本通:1839:【05NOIP提高组】谁拿了最多奖学金

    1839:[05NOIP提高组]谁拿了最多奖学金 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 14617     通过数: 6863 [题目描述] 某校的惯例是 ...

  5. 洛谷 P1051 谁拿了最多奖学金 C++

    题目描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 院士奖学金,每人 8000 元,期末平均成绩高于 80 分(>80),并且在本学期内发表1篇或 ...

  6. P1051 谁拿了最多奖学金

    某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 院士奖学金,每人800080008000元,期末平均成绩高于808080分(>80>80>8 ...

  7. 谁拿了最多奖学金pascal程序

    题意 找出奖学金最多的学生 分析 这题就是很简单的字符串处理,细心一点就好. 先把每一个学生的奖学金算出来,再排序,如果有两位或两位以上的学生获得的奖金最多,输出他们之中在输入文件中出现最早的学生的姓 ...

  8. 洛谷——P1051 谁拿了最多奖学金

    题目描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 院士奖学金,每人80008000元,期末平均成绩高于8080分(>80>80),并且在本 ...

  9. 牛客16654 谁拿了最多奖学金

    链接:https://ac.nowcoder.com/acm/problem/16654 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言2621 ...

  10. [NOIP2005] 提高组 洛谷P1051 谁拿了最多奖学金

    题目描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1 ...

最新文章

  1. openstack环境准备
  2. 深入学习Redis高可用架构:哨兵原理及实践
  3. JQuery 总结(5) 总结各种小应用
  4. css不换行属性_那些不常见,但却非常实用的 css 属性
  5. 使用 cglib_java动态代理(JDK和CGLIB原理解析与使用)
  6. python代码性能分析_Python 性能分析入门指南
  7. 音频特效:Delay 和 Vibrato
  8. 使用Sqlloader处理数据
  9. 【Mockplus教程】账号和购买
  10. 【css】让img图片居中显示
  11. 疫情中计算机方面的直播课,线上课程,前沿讲座,主要是人工智能方面,计算机视觉,爬虫等
  12. 工控液晶屏开机白屏怎么回事,开机白屏解决方法?
  13. 如何创建数据链接文件
  14. 高等数学(第七版)同济大学 习题12-2 个人解答
  15. 定位人工智能时代的“拍照机器人”,美图M8为何能撂倒Angelababy等明星
  16. 不升职还能加薪,美团5年首次职级大调整
  17. 区块链珠宝溯源,解决珠宝行业信任危机
  18. 判断素数三种不同的方法(java)
  19. linux添加三个用户lab1,linux操作系统实验linux下用户与组的管理
  20. 详解build.gradle文件

热门文章

  1. 兼容IE8遇到的问题
  2. 「随机化快排」期望运行时间证明
  3. saltstack安装使用
  4. (转)Inno Setup入门(七)——提供安装语言选项
  5. UVA 10917 Walk Through the Forest 最短路 + DP
  6. Bean在Spring和SpringMVC中无所不在
  7. window开机 关机 记录日志
  8. VS Code 新版本重磅发布,迎来 2020 年首个重大更新!
  9. 最近租房有点烦!技术人如何用Python找到称心如意的“小窝”?
  10. MySQL 高性能表设计规范