#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class CA
{
public:
struct cperson
{
enum{l_sage=1,l_nobleman=2,l_fool=3,l_small=4};
int id,talent,virtue;
int total,level;
bool operator < (const cperson &p) const
{
if(level==p.level)
{
if(total==p.total)
{
if(virtue==p.virtue)
{
return id <p.id;
}
else return virtue > p.virtue;
}
else return total>p.total;
}
else return level<p.level;
}
};
vector<cperson> v;
int n,l,h;
void run();
};
void CA::run()
{
scanf("%d%d%d",&n,&l,&h);
cperson p;
int i;
for(i=0;i<n;i++)
{
scanf("%d%d%d",&p.id,&p.virtue,&p.talent);
if(p.talent>=l&&p.virtue>=l)
{
p.total=p.talent+p.virtue;
if(p.talent>=h&&p.virtue>=h) p.level=cperson::l_sage;
else if(p.talent<h&&p.virtue>=h) p.level=cperson::l_nobleman;
else if(p.talent<h&&p.virtue<h&&p.virtue>=p.talent) p.level=cperson::l_fool;
else p.level=cperson::l_small;
v.push_back(p);
}
}
sort(v.begin(),v.end());
printf("%d\n",v.size());
for(i=0;i<v.size();i++)
{
printf("%08d %d %d\n",v[i].id,v[i].virtue,v[i].talent);
}
}
int main()
{
//freopen("test.in","r",stdin);
CA *a=new CA;
a->run();
return 0;
}
1062. Talent and Virtue (25)
最新推荐文章于 2021-12-15 11:45:04 发布