选择题+编程题 官网有:GESP官网
编程题 1:成绩排序
知识点: 离散化
写法1: 两次结构体排序
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
struct stu{
int i, j; // i是一开始位置, j是排名的位置
int a,b,c;
int sabc, sab, mab;
}s[10009];
bool cmp0(stu x, stu y){
return x.i<y.i;
}
bool cmp1(stu x, stu y){
return x.sabc>y.sabc
|| x.sabc==y.sabc && x.sab>y.sab
|| x.sabc==y.sabc && x.sab==y.sab && x.mab>y.mab;
}
bool cmp2(stu x, stu y){
return x.sabc==y.sabc && x.sab==y.sab && x.mab==y.mab;
}
int main(){
int n; scanf("%d", &n);
for(int i=1;i<=n;++i){
s[i].i = i;
scanf("%d %d %d", &s[i].a, &s[i].b , &s[i].c);
s[i].sabc = s[i].a + s[i].b + s[i].c;
s[i].sab = s[i