#include <iostream>
#include <algorithm>
#include<string>
#include<iomanip>
using namespace std;
typedef struct quiz {
string name = "AAAAAA";
int correctNum = 0;
int wrongNum = 0;
int Time = 0;
}quiz;
bool cmpt(quiz a, quiz b) {
//重载
if (a.correctNum != b.correctNum)
return a.correctNum > b.correctNum;
else if (a.Time != b.Time)
return a.Time < b.Time;
else
return a.name < b.name;
}
int main() {
quiz student[20];
int quizNum, wrongTime;
string data[20];
cin >> quizNum >> wrongTime;
int i = 0;
while (cin >> student[i].name) {
for (int j = 0; j < quizNum; j++) {
cin>> data[j];
}
for (int j = 0; j < quizNum; j++) {
if (data[j].find('(') == -1) {
if (stoi(data[j]) > 0) {
student[i].Time += stoi(data[j]);
student[i].correctNum++;
}
}
else {
student[i].Time += stoi(data[j].substr(0, data[j].find("(")));
student[i].wrongNum += stoi(data[j].substr(data[j].find("(") + 1, data[j].find(")") - data[j].find("(") - 1));
student[i].correctNum++;
}
}
student[i].Time += (student[i].wrongNum * wrongTime);
i++;
}
std::sort(student, student + i, cmpt);
for (int j = 0; j<i; j++) {
cout << left << setw(10) << student[j].name <<" "\
<<right << setw(2) << student[j].correctNum<<" "\
<< setw(4) << student[j].Time << endl;
}
return 0;
}
破玩意oj有问题 cin.eof()出来答案不对 不知道为啥