0分求助,求和不正确
#include <bits/stdc++.h>
using namespace std;
int solution(int argc, char **argv) {
int n;
cin >> n;
vector<string> name(n), isCadre(n), isWest(n);
vector<int> endGrade(n), classGrade(n), paper(n);
vector<int> count(n), money(n);
int sum = 0;
for (int i = 0; i < n; i++) {
cin >> name[i] >> endGrade[i] >> classGrade[i] >> isCadre[i] >> isWest[i] >> paper[i];
}
for (int i = 0; i < n; i++) {
if (endGrade[i] > 80 && paper[i] >= 1) {
money[i] += 8000;
sum+=8000;
count[i]++;
}
if (endGrade[i] > 85 && classGrade[i] >= 80) {
money[i] += 4000;
sum+=4000;
count[i]++;
}
if (endGrade[i] > 90) {
money[i] += 2000;
sum+=2000;
count[i]++;
}
if (endGrade[i] > 85 && isWest[i] == "Y") {
money[i] += 1000;
sum+=1000;
count[i]++;
}
if (endGrade[i] > 80 && isCadre[i] == "Y") {
money[i] += 850;
sum+=850;
count[i]++;
}
}
vector<pair<int, int>> moneyWithIndex;
for (int i = 0; i < n; i++) {
moneyWithIndex.push_back({money[i], i});
}
sort(moneyWithIndex.begin(), moneyWithIndex.end(), [&](pair<int, int> &a, pair<int, int> &b)->bool{
if (a.first == b.first) return a.second > b.second;
else return a.first < b.first;
});
int target = moneyWithIndex.back().second;
cout << name[target] << endl;
cout << money[target] << endl;
cout << sum << endl;
return 0;
}