如果你像我一样定义了一堆这种记录成绩分段的数组(grading、runningscore等),请别开O2,不然会RE
#include<bits/stdc++.h>
using namespace std;
int hour,minute,second,month=1,day=1,n,m,f,timing[24][60][60],diary[13][32],grading[11]={95,90,85,80,77,73,70,67,63,60,0},runningscore[9]={21,19,17,14,11,999999999,7,999999999,3},timesscore[5]={18,15,12,9,6},axm[10]={12,13,13,14,14,15,15,16,17,18},bxm[10]={30,0,30,0,30,10,50,30,10,0},axf[10]={6,6,7,7,7,8,8,8,8,9},bxf[10]={40,57,14,31,50,5,20,35,50,0};
const int waiting=21600;
string id[10001],fitime,rtime,xid,first,last,ppause,grade[101],grades[11]={"A","A-","B+","B","B-","C+","C","C-","D+","D","F"};
char g,test,s;
double dist,step;
const double mleast=3000,fleast=1500,maxstep=1.5,fast=5,slow=2;
map<string,int>score,times,recordtime,runningtimes;
map<string,bool>gender,idv;
bool cmp(string a,string b){
return a<b;
}
int main(){
for(int i=1;;i++){
//初始化
}
for(int i=1;i<=86400;i++){
//初始化
}
for(int i=0;i<=100;i++){
for(int j=0;j<11;j++){
//初始化
}
}
cin>>n;
for(int i=1;i<=n;i++){
//输入
int a=0,b=0,r=1,l=fitime.length();
for(int j=0;j<l-1;j++){
//判断
}
b+=a*60;
//计算期末长跑
}
cin>>m;
while(m--){
int nmonth,nday,fhour,fminute,fsecond,lhour,lminute,lsecond,firsttime,lasttime,firstsumtime,lastsumtime,a=0,b=0,r=1,l;
double speed;
cin>>rtime>>xid>>first>>last>>dist>>ppause>>step;
//计算时间、速度等
//判断不合法
//记录
}
for(int i=1;i<=n;i++){
for(int j=0;j<9;j++){
//计算阳光长跑成绩
}
for(int j=0;j<5;j++){
//计算训练营成绩
}
}
//排序
for(int i=1;i<=n;i++){
//输出
}
return 0;
}
//(☆▽☆)