您的位置:首页 > 产品设计 > UI/UE

1062. Talent and Virtue (25)

2015-02-06 19:32 423 查看
点击打开链接

#include <algorithm>
#include <cstdio>
#include <string.h>
using namespace std;
struct s
{
char id[10];
int v;
int t;
int total;
}rec[100010];
int n,low,h;
bool cmp(s a,s b){
if(a.total!=b.total){
return a.total>b.total;
}else{
if(a.v!=b.v){
return a.v>b.v;
}else{
return strcmp(a.id,b.id)<0;
}
}
}
bool in[100010]={0};
int sel[100010];
int cnt=0;
void sel_in(){
for(int i=0;i<n;i++){
if(in[i]==false && rec[i].t>=low && rec[i].v>=low){
in[i]=true;
sel[cnt++]=i;
}
}
}
void sel_sage(){
for(int i=0;i<n;i++){
if(in[i]==false && rec[i].t>=h && rec[i].v>=h){
in[i]=true;
sel[cnt++]=i;
}
}
}
void sel_noble(){
for(int i=0;i<n;i++){
if(in[i]==false && rec[i].v>=h && rec[i].t>=low && rec[i].t<h){
in[i]=true;
sel[cnt++]=i;
}
}
}
void sel_fool(){
for(int i=0;i<n;i++){
if(in[i]==false && rec[i].v<h && rec[i].t<h && rec[i].t<=rec[i].v
&& rec[i].t>=low && rec[i].v>=low){
in[i]=true;
sel[cnt++]=i;
}
}
}
int main(){
freopen("in.txt","r",stdin);
scanf("%d %d %d",&n,&low,&h);
for(int i=0;i<n;i++){
scanf("%s %d %d",rec[i].id,&rec[i].v,&rec[i].t);
rec[i].total=rec[i].v+rec[i].t;
}
sort(rec,rec+n,cmp);
sel_sage();
sel_noble();
sel_fool();
sel_in();
printf("%d\n",cnt);
for(int i=0;i<cnt;i++){
printf("%s %d %d\n",rec[sel[i]].id,rec[sel[i]].v,rec[sel[i]].t);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: