#include <bits/stdc++.h>
using namespace std;
typedef struct{
int id, flag = 0, cnt = 0, sum = 0;
vector<int> marks;
}stu;
//int cmp(stu a, stu b);
int cmp(int a, int b);
vector<stu> students(10005);
int main()
{
#ifdef ONLINE_JUDGE
#else
freopen("in.txt", "r", stdin);
#endif
int N, K, M, rank = 0, last = -1;
cin >> N >> K >> M;
vector<int> score(K+1);
int i, j;
for(i = 1; i <= K; i++){
cin >> score[i];
}
//vector<stu> students(N + 1); //做了修改
vector<int> stuid(N + 1);
for(i = 0; i <= N; i++){ //做了修改
students[i].id = i;
students[i].marks.resize(K + 1, -1); //做了修改
stuid[i]=i+1;
}
for(i = 0; i < M; i++){
int tmpid, tmp, tmpscore;
cin >> tmpid >> tmp >> tmpscore;
//scanf("%d%d%d",&tmpid,&tmp,&tmpscore);
if(students[tmpid].marks[tmp] == -1){
students[tmpid].marks[tmp] = 0;
}
if(tmpscore >= 0){
students[tmpid].flag = 1;
}
if(tmpscore > students[tmpid].marks[tmp]){
students[tmpid].sum += (tmpscore - students[tmpid].marks[tmp]);
students[tmpid].marks[tmp] = tmpscore;
if(tmpscore == score[tmp]){
students[tmpid].cnt++;
}
}
}
//sort(students.begin(), students.end(), cmp);
sort(stuid.begin(), stuid.end(), cmp);
for(i = 0; i < N; i++){
//if(students[i].flag == 0) break;
if(students[stuid[i]].flag == 0) break;
//if(last != students[i].sum)
if(last != students[stuid[i]].sum){
rank = i + 1;
//last = students[i].sum;
last = students[stuid[i]].sum;
}
//printf("%d %05d %d", rank, students[i].id, students[i].sum);
printf("%d %05d %d", rank, students[stuid[i]].id, students[stuid[i]].sum);
for(j = 1; j <= K; j++){
//if(students[i].marks[j] == -1) cout << " -";
if(students[stuid[i]].marks[j] == -1) cout << " -";
//else cout << " " << students[i].marks[j];
else cout << " " << students[stuid[i]].marks[j];
}
cout << endl;
}
return 0;
}
//int cmp(stu a, stu b)
int cmp(int a, int b)
{
return students[a].flag != students[b].flag ? students[a].flag > students[b].flag : students[a].sum != students[b].sum ? students[a].sum > students[b].sum : students[a].cnt != students[b].cnt ? students[a].cnt > students[b].cnt : students[a].id < students[b].id;
}
PTA 7-15 PAT Judge (25 分)
最新推荐文章于 2021-09-02 00:44:45 发布
本文深入探讨了PAT(Pacific Asia Test for Schools)Judge在线评测系统,包括其工作原理、提交流程、错误类型分析以及如何通过实践提升解题效率。无论你是初次接触PTA还是希望提高编程能力,此篇内容都将为你提供宝贵的指导。
293

被折叠的 条评论
为什么被折叠?



