30分
by wch666 @ 2023-10-01 15:47:07
首先,这题用不着```struct```,在每次循环定几个临时变量就行
```
cin>>name>>s1>>s2>>a>>b>>x;
if(s1>80 && x>0)
sum+=8000;
if(s1>85 && s2>80)
sum+=4000;
if(s1>90)
sum+=2000;
if(s1>85 && b=='Y')
sum+=1000;
if(s2>80 && a=='Y')
sum+=850;
t+=sum;
if(sum>maxm)
{
maxn=name;
maxm=sum;
}
sum=0;
```
by Max6700 @ 2023-10-01 16:02:14
```cpp
#include<bits/stdc++.h>
using namespace std;
long long n, cnt = 0;
struct node
{
string a;
int b, c, id;
char d, e;
long long f, num;
}ans[1005];
bool cmp(node x, node y)
{
return x.num != y.num ? x.num > y.num : x.id < y.id;
}
int main()
{
cin >> n;
for(int i = 1; i <= n; i++)
{
cin >> ans[i].a >> ans[i].b >> ans[i].c >> ans[i].d >> ans[i].e >> ans[i].f;ans[i].id = i;
if(ans[i].b > 80 && ans[i].f >= 1)
{
ans[i].num += 8000;
}
if(ans[i].b > 85 && ans[i].c > 80)
{
ans[i].num += 4000;
}
if(ans[i].b > 90)
{
ans[i].num += 2000;
}
if(ans[i].b > 85 && ans[i].e == 'Y')
{
ans[i].num += 1000;
}
if(ans[i].c > 80 && ans[i].d == 'Y')
{
ans[i].num += 850;
}
}
sort(ans + 1,ans + n + 1, cmp);
cout << ans[1].a << "\n" << ans[1].num << "\n";
for(int i = 1; i <= n; i++)
{
cnt += ans[i].num;
}
cout << cnt;
}
```
**求关**
by Leo11 @ 2023-10-01 19:51:36
@Leo11,我的三目运算符学的~~不太好~~...
by wch666 @ 2023-10-04 10:31:17
已关
by wch666 @ 2023-10-05 20:56:32