社区讨论
求救:为什么90分???
P1051[NOIP 2005 提高组] 谁拿了最多奖学金参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mi6lmyok
- 此快照首次捕获于
- 2025/11/20 06:53 4 个月前
- 此快照最后确认于
- 2025/11/20 06:53 4 个月前
CPP
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
struct EX {
string name;
int qp,bp;
char xg,xs;
int lw;
int zf;
}e[105];
bool cmp (EX x,EX y)
{
return x.zf>y.zf;
}
int main ()
{
//freopen ("P1051.in","r",stdin);
//freopen ("P1051.out","w",stdout);
int n;
cin>>n;
for (int i=0;i<n;i++)
cin>>e[i].name>>e[i].qp>>e[i].bp>>e[i].xg>>e[i].xs>>e[i].lw;
for (int i=0;i<n;i++)
{
if (e[i].qp>80 && e[i].lw>=1) e[i].zf+=8000;
if (e[i].qp>85 && e[i].bp>80) e[i].zf+=4000;
if (e[i].qp>90) e[i].zf+=2000;
if (e[i].qp>85 && e[i].xs=='Y') e[i].zf+=1000;
if (e[i].bp>80 &&e[i].xg=='Y') e[i].zf+=850;
}
sort (e,e+n,cmp);
cout<<e[0].name<<endl<<e[0].zf<<endl;
int ans=0;
for (int i=0;i<n;i++)
ans+=e[i].zf;
cout<<ans<<endl;
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...