题目
题目链接
题解结构体。
讲一下一些坑点: 当没有一个题通过的时候不要输出这个人的信息; 当提交了没通过,那么输出的该题得分为0; 统计成绩时-1当0算,即忽略没通过的。
因为存在成绩为-1的情况,所以先将成绩都初始化为-INF。(核心!)
排序优先级:
- 成绩之和
- AC题的数量
- 学生id
这题真狗,debug俩小时。
代码#include
using namespace std;
const int N = 1e6+10;
int n, m, k;
int p[10];
struct node {
int id;
int score[10];
int total;
int perfect;
int flag;
node() {
id = N; // 排序的时候因为分数只统计正数的,所以会出现没出现的编号的成绩也为0,编号也为0,会排在有编号非零但成绩为0的同学前面,避免该情况要初始化
memset (score, 0xf0, sizeof score); // 初始化为极小值(负数)
total = 0;
perfect = 0;
flag = 0;
}
} stu[N];
void printinfo (int rk, int i) {
printf ("%d %05d %d", rk, stu[i].id, stu[i].total);
for (int j = 1;j sid >> pid >> score;
stu[sid].id = sid;
stu[sid].score[pid] = max (score, stu[sid].score[pid]);
}
for (int i = 1;i
关注
打赏