Information
- ID
- 485
- Time
- 1000ms
- Memory
- 125MiB
- Difficulty
- 10
- Tags
- # Submissions
- 5
- Accepted
- 4
- Uploaded By
这题先循环判断,用结构体排序后输出。
#include <bits/stdc++.h>
using namespace std;
int n, sum;
struct note {
string name;
char c, d;
int a, b, e, ans, id;
} a[105];
bool cmp(note x, note y) {
if (x.ans != y.ans) {
return x.ans > y.ans;
}
return x.id < y.id;
}
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i].name >> a[i].a >> a[i].b >> a[i].c >> a[i].d >> a[i].e;
a[i].id = i;
if (a[i].a > 80 && a[i].e >= 1) {
a[i].ans += 8000;
sum += 8000;
}
if (a[i].a > 85 && a[i].b > 80) {
a[i].ans += 4000;
sum += 4000;
}
if (a[i].a > 90) {
a[i].ans += 2000;
sum += 2000;
}
if (a[i].a > 85 && a[i].d == 'Y') {
a[i].ans += 1000;
sum += 1000;
}
if (a[i].b > 80 && a[i].c == 'Y') {
a[i].ans += 850;
sum += 850;
}
}
sort(a + 1, a + n + 1, cmp);
cout << a[1].name << endl << a[1].ans << endl << sum;
return 0;
}
//4
//YaoLin 87 82 Y N 0
//ChenRuiyi 88 78 N Y 1
//LiXin 92 88 N N 0
//ZhangQin 83 87 Y N 1
//ChenRuiyi
//9000
//28700