首页 > 其他分享 >CSP-S 2005 T1 谁拿了最多奖学金【题解】

CSP-S 2005 T1 谁拿了最多奖学金【题解】

时间:2024-07-04 10:57:02浏览次数:24  
标签:tmp 班级 T1 题解 学生 80 成绩 CSP 奖学金

1.题目

描述

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

  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 元。

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

输入描述

第一行是1个整数 N,表示学生的总数。

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

输出描述

共 3 行。

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

用例输入 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

提示

【数据范围】

对于 100% 的数据,满足 1≤N≤100。

 2.代码以及思路

#include <bits/stdc++.h>//万能头
using namespace std;
int main(){
	char s[100][20],c1,c2;
	int n,sum=0,max=0,score1,score2,num,a,b,k;
	scanf("%d",&n);
	for(int i=1;i<=n;i++){//scanf读入数据,数据间有一个或者多个空格,自动赋给相应的变量 
		scanf("%s %d %d %c %c %d",&s[i],&score1,&score2,&c1,&c2,&num);
		a=c1=='Y'? 1:0;//是否是学生干部
		b=c2=='Y'? 1:0;//是否是西部省份学生
		int tmp=0;
		if((score1>80)&&(num>0)) tmp+=8000;//院士奖学金
		if((score1>85)&&(score2>80)) tmp+=4000;//五四奖学金
		if(score1>90) tmp+=2000;//成绩优秀奖
		if(b&&(score1>85)) tmp+=1000;//西部奖学金
		if(a&&(score2>80)) tmp+=850;//班级贡献奖
		sum+=tmp;//奖学金的总数
		if(tmp>max){max=tmp;k=i;} 
	} 
	printf("%s\n%d\n%d\n",s[k],max,sum);
	return 0; 
} 

标签:tmp,班级,T1,题解,学生,80,成绩,CSP,奖学金
From: https://blog.csdn.net/loveyoulongtime/article/details/140172973

相关文章

  • 历年CSP-J初赛真题解析 | 2018年CSP-J初赛选择题(1-15)
    学习C++从娃娃抓起!记录下CSP-J备考学习过程中的题目,记录每一个瞬间。附上汇总贴:历年CSP-J初赛真题解析|汇总_热爱编程的通信人的博客-CSDN博客第1题以下哪一种设备属于输出设备()A.扫描仪B.键盘C.鼠标D.打印机【答案】:D【解析】A、B、C都是输入设备第2题下列......
  • 大华设备接入GB28181/GAT1400视频汇聚管理平台EasyCVR安防监控系统的具体操作步骤
    智慧城市/视频汇聚/安防监控平台EasyCVR兼容性强,支持多协议接入,包括国标GB/T28181协议、GA/T1400协议、部标JT808协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石云SDK等,并能对外分发RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、Web......
  • P7690 [CEOI2002] A decorative fence 题解
    题目传送门前置知识计数DP解法方案数统计同luoguP2467[SDOI2010]地精部落,但部分写得不太好看的状态转移方程在本题中并不适用,但仍可借鉴其“离散化”思想。考虑试填。设\(f_{i,j,0/1}\)表示用\(i\)块不同的木板构成栅栏,其中最左边的木板的长度从小到大排在第\(j\)......
  • [JLU] 数据结构与算法上机题解思路分享-课程设计第一次与第二次上机
    前言首先,请务必自己尽全力尝试实现题目,直接看成品代码,思维就被拘束了,也很容易被查重。这里只是思路解析的博客,代码仓库在JLU_Data_Structures_Record希望你能在这里找到你想要的:)第一次上机A网络布线分数50作者朱允刚单位吉林大学2024年亚洲杯足球赛刚刚落下帷幕,......
  • 考试题解
    20240703DSroundT1考虑区间子区间问题直接扫描线加历史版本和,考虑修改。现在扫到\(r\),线段树每个位置\(i\)维护的是\(i\)到\(r\)的区间\(lca\),这些\(lca\)的深度具有单调性,考虑直接二分一下位置,然后\(r\)扫到\(r+1\)时,深度大于\(lca(r,r+1)\)的\(......
  • AT_dp_y Grid 2 题解
    题目传送门前置知识计数DP|排列组合解法正难则反,考虑求出总方案数和至少经过一个黑色格子的方案数,二者作差即为所求。强制增加一个黑色格子\((h,w)\),使得存在一条至少经过一个黑色格子的路径。如果没有“不能移动到黑色格子中”的限制,那么就是一个简单的格路计数问题,方......
  • 7.1 lxl DS Day1 题解
    7.1lxlDSDay1题解P7124[Ynoi2008]stcm性质1:考虑轻儿子的子树和为\(O(nlogn)\)。证明:考虑每个结点会对多少个轻祖先做贡献,也就是重链个数,考虑每个节点到根节点重链条数为\(O(nlogn)\),所以子树和为\(O(nlogn)\)。所以对于一条重链,如果我们已经插入了链头的补集,......
  • MySQL在本机环境安装过程及问题解决
    最近在我的Windows10电脑上搭建MySQL数据库环境,没想到居然遇到了不少问题,特记录下来,希望给大家帮助,少走弯路。下载MySQLCommunityServer https://dev.mysql.com/downloads/mysql/ MySQLCommunityServeristheworld'smostpopularopensourcedatabase.这个社区......
  • P10218 [省选联考 2024] 魔法手杖 题解
    题目描述:给定序列\(a_1,\cdots,a_n\)和\(b_1,\cdots,b_n\),满足\(a_i\in[0,2^k-1],b_i\ge0\),你需要给出\(S\subseteq\{1,\cdots,n\}\)和\(x\in[0,2^k-1]\)满足:\(\sum\limits_{i\inS}b_i\lem\)。最大化\(val(S,x)=\min\big(\min\limits_{i\inS......
  • 蓝桥 第 3 场 算法季度赛 前5题题解,剩下的后续发上去补上
    第1题全国科普行动日【算法赛】题目传送门直接输出就行,没多大操作可言:#include<iostream>usingnamespacestd;intmain(){cout<<"6.29";return0;}第2题 A%B【算法赛】题目传送门题目有点小坑,因为也可能是负数,所以需要特判一下,上代码就可以看懂了:#include......