社区讨论
WA
P1051[NOIP 2005 提高组] 谁拿了最多奖学金参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mizk8us2
- 此快照首次捕获于
- 2025/12/10 13:20 3 个月前
- 此快照最后确认于
- 2025/12/12 21:50 3 个月前
CPP
#include<string>
#include<vector>
#include<iostream>
#include<algorithm>
struct A{//学生
std::string a;//姓名
int b;//期末平均成绩
int c;//班级评议成绩
char d;//是否是学生干部
char e;//是否是西部省份学生
int f;//发表的论文数
int g;//奖金
int h;//输入文件
};
bool B(A x,A y){
if(x.g!=y.g) return x.g>y.g;
else return x.h>y.h;
}
int main(){
int n,b=0;
std::cin>>n;
std::vector<A> a(n);
for(int i=0;i<n;++i){
a[i].h=i;
std::cin>>a[i].a>>a[i].b>>a[i].c>>a[i].d>>a[i].e>>a[i].f;
if(a[i].b>80&&a[i].f>=1) a[i].g+=8000;
if(a[i].b>85&&a[i].c>80) a[i].g+=4000;
if(a[i].b>90) a[i].g+=2000;
if(a[i].b>85&&a[i].e=='Y') a[i].g+=1000;
if(a[i].c>80&&a[i].d=='Y') a[i].g+=850;
b+=a[i].g;
}
std::sort(a.begin(),a.end(),B);
std::cout<<a[1].a<<'\n'<<a[1].g<<'\n'<<b;
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...