其实这一题也不难 (WA 了三次) , 主要思路是模拟 ,当然 ,也有贪心 。
一个比较重要的地方是这里 :
for (int i = 1; i <= n; i++) {
cin >> a[i].s;
if (a[i].s == "NijeZivotJedanACM") {
k = i;
for (int j = 1; j <= m; j++)
cin >> s1;
continue;
}
Please pay attention ,输入 NijeZivotJedanACM 的最终成绩(即排行榜解冻后的成绩)。 这个判断一定要加上。 ,所以一共 n+1n+1n+1n+1 行。
其他的地方也没什么好讲的了 ,细心点 ,注意错误的不惩罚 ,就基本上可以通过了 。 在这里献上部分代码(拒绝白嫖,拒绝直接复制粘贴) :
struct Node {
string s;
int num;
int sum;
bool operator < (const Node o) {
if (num == o.num) {
if (sum == o.sum)
s < o.s;
return sum < o.sum;
}
return num > o.num;