这题应该要spj,因为可能会有多种答案
原因:
-
题目中没有注明会不会出现重复
-
我自己就这么wa了
代码:
#include <bits/stdc++.h>
using namespace std;
int n,ans[111],sum;
void YMT(){
string s[111];
pair<int,string> p[111];
cin >> n;
for (int i=1;i<=n;i++){
cin >> s[i];
int a,b,c;
char d,e;
cin >> a >> b >> d >> e >> c;
if (a>80 and c >= 1) ans[i]+=8000;
if (a>85 and b > 80) ans[i]+=4000;
if (a>90) ans[i]+=2000;
if (a>85 and e == 'Y') ans[i]+=1000;
if (b>80 and d == 'Y') ans[i]+=850;
sum += ans[i];
}
for (int i=1;i<=n;i++)
p[i] = make_pair(ans[i],s[i]);
sort(p+1,p+n+1);
reverse(p+1,p+n+1);
cout << p[1].second << endl;
cout << p[1].first << endl;
cout << sum;
}
int main(){
int T=1;
while(T--) YMT();
return 0;
}
求救!!!