#include<stdio.h>
#include<string.h>
#include<vector> //vector
#include<algorithm> //sort
#include<iostream> //bool cin cout size()
using namespace std;
struct stu{ // 通过结构体创建自己的数据类型
int id,d,c;
};
//return a>b 表示降序,return a<b表示升序
bool cmp(stu a,stu b){
if(a.d+a.c!=b.d+b.c) return a.d+a.c>b.d+b.c;
else if(a.d!=b.d) return a.d>b.d;
else return a.id<b.id;
}
int main(){
int N,L,H,i,count=0;
cin>>N>>L>>H;
stu tmp;vector <stu> vec1,vec2,vec3,vec4;
while(N--){
cin>>tmp.id>>tmp.d>>tmp.c; //cin 不能以endl结尾
if(tmp.d>=L&&tmp.c>=L){
count++;
if(tmp.d>=H && tmp.c>=H){
vec1.push_back(tmp);
}else if(tmp.d>=H && tmp.c<H){
vec2.push_back(tmp);
}else if(tmp.d<H && tmp.c<H && tmp.d>=tmp.c){
vec3.push_back(tmp);
}else{
vec4.push_back(tmp);
}
}
}
cout<<count<<endl;
sort(vec1.begin(),vec1.end(),cmp);
sort(vec2.begin(),vec2.end(),cmp);
sort(vec3.begin(),vec3.end(),cmp);
sort(vec4.begin(),vec4.end(),cmp);
for(i=0;i<vec1.size();i++)
printf("%d %d %d\n",vec1[i].id, vec1[i].d, vec1[i].c); //尽量用scanf和printf,用cin和cout有时会超时
//cout<<vec1[i].id<<" "<<vec1[i].d<<" "<<vec1[i].c<<endl;
for(i=0;i<vec2.size();i++)
printf("%d %d %d\n",vec2[i].id, vec2[i].d, vec2[i].c);
//cout<<vec2[i].id<<" "<<vec2[i].d<<" "<<vec2[i].c<<endl;
for(i=0;i<vec3.size();i++)
printf("%d %d %d\n",vec3[i].id, vec3[i].d, vec3[i].c);
//cout<<vec3[i].id<<" "<<vec3[i].d<<" "<<vec3[i].c<<endl;
for(i=0;i<vec4.size();i++)
printf("%d %d %d\n",vec4[i].id, vec4[i].d, vec4[i].c);
//cout<<vec4[i].id<<" "<<vec4[i].d<<" "<<vec4[i].c<<endl;
return 0;
}
1015. 德才论 (25)
最新推荐文章于 2021-04-13 21:50:14 发布