描述 Description
某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同:
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元。
现在给出若干学生的相关数据,请计算哪些同学获得的奖金总数最高(假设总有同学能满足获得奖学金的条件)。
输入格式 Input Format
输入的第一行是一个整数N(1 <= N <= 100),表示学生的总数。接下来的N行每行是一位学生的数据,从左向右依次是姓名,期末平均成绩,班级评议成绩,是否是学生干部,是否是西部省份学生,以及发表的论文数。姓名是由大小写英文字母组成的长度不超过20的字符串(不含空格);期末平均成绩和班级评议成绩都是0到100之间的整数(包括0和100);是否是学生干部和是否是西部省份学生分别用一个字符表示,Y表示是,N表示不是;发表的论文数是0到10的整数(包括0和10)。每两个相邻数据项之间用一个空格分隔。
输出格式 Output Format
输出包括三行,第一行是获得最多奖金的学生的姓名,第二行是这名学生获得的奖金总数。如果有两位或两位以上的学生获得的奖金最多,输出他们之中在输入文件中出现最早的学生的姓名。第三行是这N个学生获得的奖学金的总数。
样例输入 Sample Input
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
样例输出 Sample Output
ChenRuiyi
9000
28700
时间限制 Time Limitation
1s
来源 Source
NOIp2005 第一题
========================== 华丽的分割线 ==========================
这题目真的很简单,, 不过做了我好长时间. 检查过来检查过去, 发现是变量定义错误,, 误将char 定义为int, 在判断的时候就出现了一些错误..
,, 怪丢人的.. 调试了好久...
总之题目的思路是将输入的每个人获得的奖学金算出来, 并记入总奖学金,, 并判断如果这个人的奖学金大于最高的奖学金, 那么他所获得的奖学金即为最高奖学金..
废话不说了,, 代码贴出来:
#include <stdio.h>
#define getint(i) scanf("%d", &i)
int main(void)
{
int n, i;
int t1, t2, t3;
char c2, c1;
int tot = 0;
int max = 0;
int grade;
char maname[100], name[100];
getint(n);
for(i = 0; i < n; i++){
grade = 0;
scanf("%s%d%d %c %c%d\n", name, &t1, &t2, &c1, &c2, &t3);
if((t1 > 80) && (t3 > 0)){
grade += 8000;
}
if((t1 > 85) && (t2 > 80)){
grade += 4000;
}
if(t1 > 90){
grade += 2000;
}
if((t1 > 85) && (c2 == 'Y')){
grade += 1000;
}
if((t2 > 80) && (c1 == 'Y')){
grade += 850;
}
if(grade > max){
strcpy(maname, name);
max = grade;
}
tot += grade;
}
printf("%s\n%d\n%d\n", maname, max, tot);
return 0;
}
分享到:
相关推荐
Vijos的本地版题库是一款专为高校信息学教育设计的测评系统,它提供了丰富的算法题目,旨在帮助学生和教师进行在线编程练习与评测。这个压缩包包含了一个名为“Vijos的本地版题库.exe”的可执行文件,这很可能是该...
vijos1628代码vijos1628代码vijos1628代码vijos1628代码
Vijos的本地版题库是一款专为信息学竞赛爱好者设计的离线版在线判题系统(OJ,Online Judge)。这个系统集成了超过300道经典题目,旨在帮助用户在没有网络连接的情况下也能进行编程训练和自我评测。Vijos作为一款...
VIJOS 题库 VIJOS题库(EXE格式电子书)
Vijos 评测服务源代码提供了在线编程竞赛平台Vijos的核心组成部分——VTS.EXE的内部实现。这个系统是用Visual Basic .NET 2005编写的,虽然版本较为陈旧,但它揭示了早期在线自动评测系统的设计思想和技术栈。 首先...
标题中的“vijos_dp_5problems.rar_vijos”暗示了这是一份与Vijos平台相关的动态规划(DP)解题集,其中包含了五个问题。Vijos是一个在线编程竞赛平台,常用于锻炼和测试程序员的算法能力,尤其是解决复杂计算问题的...
vijos1025题题解,经典的入门背包问题,自己写的pascal语言
"java_vijos Wwwroot.ra"可能指的是Vijos,一个在线编程平台,而"Wwwroot"通常代表Web服务器的根目录,意味着这个框架可能包含有关部署到Web服务器的信息。 【描述】提到这是一个"Web信息管理系统开发框架",适合...
对VIJOS这个题库上题目的一些解题报告,有很多道,相信对OI选手会有很大帮助。
机器人巡游
【标题】:“Vijos 判题系统的恶意代码分析与防范” 在计算机科学领域,恶意代码是指设计用来破坏计算机系统、窃取数据或执行非法操作的程序。在编程竞赛平台如Vijos上,参赛者提交的代码会被自动运行以进行判题。...
PASCAL的 40行左右 状态压缩DP 题库上增加了时限所以AC变的简单
我是用分治法的
Python爬虫技术在IT行业中广泛应用于数据采集,特别是在获取在线编程挑战平台(如VIOJ,全称可能为Virtual Online Judge System)的题库资源时。这个压缩包包含了一系列XML文件,每个文件代表了VIOJ题库中的一个问题...
请不要再下载 ...。。。 那个有问题,现在我发一个新的 里面有一个教程(自认为写得很完整) 贴上后面几部分的地址(后面的不要分) ...如果有什么问题,请在 CSDN 上联系我
2017游戏大厅大全,就在...矩阵取数游戏 - Vijos 描述 帅帅经常更同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij据为非负整数。游戏规则如下: 1. 每次取数时须从每行各取走一个元素,共n个。 ...
VijosNT Mini 2.0.5.6 是一个专为信息学竞赛设计的单机评测系统,它被广泛应用于各类信息学奥赛,如NOIP(全国青少年信息学奥林匹克联赛)、NOI(全国青少年信息学奥林匹克竞赛)以及IOI(国际信息学奥林匹克竞赛)...
vijos 一些简单题
问题一 字串变换 描述: 已知有两个字串 A, B 及一组字串变换的规则: A1 -> B1 A2 -> B2 规则的含义为:在 A中的子串 A1 可以变换为 B1、A2 可以变换为 B2 … ...例如:A='abcd' B='xyz' ...