【洛谷p1051】谁拿了最多奖学金
这道题早就想做它啦。
咱也不知道为啥,咱就是看这道题特别顺眼呢qwq;
MY SOLUTION:
其实这道题很简单,开一个结构体记录各项信息,然后根据条件计算出这个人获得的奖学金(也放在结构体里),然后sort一下;

尽管我不知道是不是真的有相同奖学金(✿✿ヽ(°▽°)ノ✿)的人,但是既然他说了,咱就写一下,因此我在结构体里还加了个num记录输入的编号;然后cmp(* ̄︶ ̄);
CODE:
#include<bits/stdc++.h> using namespace std; int n,sum;
struct node{
char name[];
int sor,cla,num;
char g,w;
int pas;
int money;
}stu[]; bool ys(int i){
if(stu[i].sor<=) return ;
if(stu[i].pas<) return ;
return ;
} bool ws(int i){
if(stu[i].sor<=) return ;
if(stu[i].cla<=) return ;
return ;
} bool yx(int i){
if(stu[i].sor<=) return ;
return ;
} bool west(int i){
if(stu[i].sor<=) return ;
if(stu[i].w=='N') return ;
return ;
} bool gx(int i){
if(stu[i].cla<=) return ;
if(stu[i].g=='N') return ;
return ;
} bool cmp(node x,node y){
if(x.money==y.money) return x.num<y.num;
return x.money>y.money;
} int main(){
scanf("%d",&n);
for(int i=;i<=n;i++){
cin>>stu[i].name>>stu[i].sor>>stu[i].cla>>stu[i].g>>stu[i].w>>stu[i].pas;
stu[i].num=i;
if(ys(i)) stu[i].money+=;
if(ws(i)) stu[i].money+=;
if(yx(i)) stu[i].money+=;
if(west(i)) stu[i].money+=;
if(gx(i)) stu[i].money+=;
sum+=stu[i].money;
}
sort(stu+,stu+n+,cmp);
cout<<stu[].name<<endl<<stu[].money<<endl<<sum<<endl;
}
【洛谷p1051】谁拿了最多奖学金的更多相关文章
- 洛谷—— P1051 谁拿了最多奖学金
https://www.luogu.org/problem/show?pid=1051 题目描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 1) 院士奖 ...
- [NOIP2005] 提高组 洛谷P1051 谁拿了最多奖学金
题目描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1 ...
- 洛谷P1051 谁拿了最多奖学金
https://www.luogu.org/problem/P1051 #include<bits/stdc++.h> using namespace std; struct node { ...
- (Java实现) 洛谷 P1051 谁拿了最多奖学金
题目描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上 ...
- (水题)洛谷 - P1051 - 谁拿了最多奖学金
https://www.luogu.org/problemnew/show/P1051 这个根本就不用排序啊…… #include<bits/stdc++.h> using namespa ...
- 洛谷 P1583魔法照片 & P1051谁拿了最多奖学金 & P1093奖学金
题目:https://www.luogu.org/problemnew/show/P1583 思路:sort sort sort //#include<bits/stdc++.h> #in ...
- P1051 谁拿了最多奖学金——水题
题目描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1 ...
- 洛谷题解 P1051 【谁拿了最多奖学金】
其实很水 链接: P1051 [谁拿了最多奖学金] 注意: 看好信息,不要看漏或看错因为信息很密集 AC代码: 1 #include<bits/stdc++.h>//头文件 2 using ...
- 洛谷 [BJOI2012]最多的方案
洛谷 这题是旁边同学介绍的,听他说记忆化搜索可以过... 不过我还是老老实实的想\(dp\)吧- 先看看数据范围,\(n\leq10^{18}\)相当于\(n \leq fib[86]\). 以前打\ ...
随机推荐
- <label>标签的相关内容
㈠<label>标签的定义与用法 ⑴<label> 标签为 input 元素定义标注(标记). ⑵label 元素不会向用户呈现任何特殊效果.不过,它为鼠标用户改进了可用性.如 ...
- JavaScript 的基本概念( ES5 )
语法 区分大小写 标识符 第一个字符必须是一个字母,下划线或者一个美元符( $ ).其他规则无论,最好按照通用的驼峰大小写. 注释 // 单行注释 /* 多行注释 */ 严格模式 在顶部添加如下代码 ...
- 我不熟悉的string类
我不常用的string函数 多的不说,直接上: assign函数 string& assign(const char *s); //把字符串s赋给当前的字符串 string& assi ...
- HDU 5249:KPI(权值线段树)
KPI Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Desc ...
- 安装python及其它
https://www.liaoxuefeng.com/wiki/1016959663602400/1016959856222624
- Java中的Unicode与码点
Java中,可以用\uXXXX表示Unicode字符,例如String s = "\u00X1";XXXX必须为4位,因此码点为U+1D546的字符,需要用两个编码单元表示,例如S ...
- 堆里面的分区:Eden,Survivor(from+ to),老年代,各自的特点
堆里面分为新生代和老生代(java8取消了永久代,采用了Metaspace),新生代包含Eden+Survivor区,survivor区里面分为from和to区,内存回收时,如果用的是复制算法,从fr ...
- C++入门经典-例6.14-通过指针连接两个字符数组
1:字符数组是一个一维数组,引用字符数组的指针为字符指针,字符指针就是指向字符型内存空间的指针变量. char *p; char *string="www.mingri.book" ...
- HTML功能框架
起始预定义函数 function $(obj) { return document.getElementById(obj); } 1.用户登陆框架 <!DOCTYPE html> < ...
- 硬盘类型和Linux分区
1. 硬盘类型和Linux分区 分类: Linux系统与应用 2011-11-22 20:54 1404人阅读 评论(0) 收藏 举报 linuxide扩展ftp服务器服务器redhat 真怪自己知识 ...