1015 德才论
又臭又长
#include <bits/stdc++.h>
using namespace std;
struct node {
string sno;
int df;
int cf;
} s[10010];
vector<node> a,b,c,d;//三个批
bool cmp(node x1,node x2) {
int g1 = x1.cf+x1.df;
int g2 = x2.cf+x2.df;
if(g1!=g2) return g1>g2;
if(x1.df!=x2.df) return x1.df>x2.df;
return x1.sno < x2.sno;
}
void print(vector<node> a) {
for(int i=0; i<a.size(); i++) {
printf("%s %d %d\n",a[i].sno.c_str(),a[i].df,a[i].cf);
}
}
int main() {
int n,l,h;
cin>>n>>l>>h;
string sno,df,cf;
for(int i=0; i<n; i++) {
cin>>s[i].sno>>s[i].df>>s[i].cf;
}
for(int i=0; i<n; i++) {
if(s[i].df<l || s[i].cf<l) continue;
//如果高于下限
if(s[i].df>=h && s[i].cf>=h) {
a.push_back(s[i]);
} else if(s[i].df>=h) { //只有德分够了
b.push_back(s[i]);
} else if(s[i].df >= s[i].cf) {
c.push_back(s[i]);
} else {
d.push_back(s[i]);
}
}
sort(a.begin(),a.end(),cmp);
sort(b.begin(),b.end(),cmp);
sort(c.begin(),c.end(),cmp);
sort(d.begin(),d.end(),cmp);
printf("%d\n",a.size()+b.size()+c.size()+d.size());
print(a);
print(b);
print(c);
print(d);
return 0;
}