2 条题解
-
0
#include<bits/stdc++.h> //引入头文件,引入输入输出系统功能 using namespace std; //引入命名空间,将std::cin简化为cin, std::cout简化为cout struct student{ int id; //学号 int ch; //语文 int ma; //数学 int en; //英语 int zong;//总分 int mc; //名次 }st[10000]; bool cmp(student a,student b){ if(a.zong==b.zong){ if(a.ch+a.ma==b.ch+b.ma) return max(a.ch,a.ma)>max(b.ch,b.ma); else return a.ch+a.ma>b.ch+b.ma; }else return a.zong>b.zong; } bool cmp2(student a,student b){ return a.id<b.id; } int main(){ //绩排序 int n; cin>>n; for(int i=0;i<n;i++){ cin>>st[i].ch>>st[i].ma>>st[i].en; st[i].zong= st[i].ch+st[i].ma+st[i].en; st[i].id=i; } sort(st,st+n,cmp); int mingci=1; st[0].mc=1; for(int i=1;i<n;i++){ if(st[i].zong==st[i-1].zong and st[i].ch+st[i].ma==st[i-1].ch+st[i-1].ma and max(st[i].ch,st[i].ma)==max(st[i-1].ch,st[i-1].ma)){ st[i].mc=st[i-1].mc; mingci++; }else{ mingci++; st[i].mc=mingci; } } sort(st,st+n,cmp2); for(int i=0;i<n;i++) cout<<st[i].mc<<endl; return 0; //程序结束的地方 }
信息
- ID
- 1858
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 1
- 上传者