首页 > 学院 > 开发设计 > 正文

1012. The Best Rank (25)

2019-11-08 20:10:34
字体:
来源:转载
供稿:网友
#include<iostream>#include<algorithm>#include<vector>using namespace std;typedef struct stu{ long int id; int C,M,E,A; int c,m,e,a;}stu;bool CS(stu stu1,stu stu2){ return (stu1.C>stu2.C);}bool MS(stu stu1,stu stu2){ return (stu1.M>stu2.M);}bool ES(stu stu1,stu stu2){ return (stu1.E>stu2.E);}bool AS(stu stu1,stu stu2){ return (stu1.A>stu2.A);}void compare(stu g){ if(g.c<=g.m && g.c<=g.e && g.c<g.a) cout<<g.c<<" "<<"C"<<endl; if(g.m<g.c && g.m<=g.e && g.m<g.a) cout<<g.m<<" "<<"M"<<endl; if(g.e<g.c && g.e<g.m && g.e<g.a) cout<<g.e<<" "<<"E"<<endl; if(g.a<=g.c && g.a<=g.m && g.a<=g.e) cout<<g.a<<" "<<"A"<<endl;}int main(){ vector<stu> vec; vector<long int> vec2; int count; int num,test_num; cin>>num>>test_num; for(int t=0;t<num;t++) { stu s; cin>>s.id>>s.C>>s.M>>s.E; s.A=(s.C+s.E+s.M)/3; vec.push_back(s); } sort(vec.begin(),vec.end(),CS); count=1; for(vector<stu>::iterator it=vec.begin();it!=vec.end();it++) { if(it!=vec.begin() && it->C ==(it-1)->C) (*it).c=(it-1)->c; else it->c=count; count++; } sort(vec.begin(),vec.end(),MS); count=1; for(vector<stu>::iterator it=vec.begin();it!=vec.end();it++) { if(it!=vec.begin() && it->M ==(it-1)->M) (*it).m=(it-1)->m; else it->m=count; count++; } sort(vec.begin(),vec.end(),ES); count=1; for(vector<stu>::iterator it=vec.begin();it!=vec.end();it++) { if(it!=vec.begin() && it->E ==(it-1)->E) (*it).e=(it-1)->e; else it->e=count; count++; } sort(vec.begin(),vec.end(),AS); count=1; for(vector<stu>::iterator it=vec.begin();it!=vec.end();it++) { if(it!=vec.begin() && it->A==(it-1)->A) (*it).a=(it-1)->a; else it->a=count; count++; } for(int t=0;t<test_num;t++) { long int i; cin>>i; vec2.push_back(i); } for(vector<long int>::iterator it =vec2.begin();it!=vec2.end();it++) { vector<stu>::iterator ss=find_if(vec.begin(),vec.end(),[it](const stu &s){return s.id==*it;})!=vec.end(); if(ss!=vec.end()) compare( *ss); else cout<<"N/A"<<endl; }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表