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;
}
#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;
}
相关文章推荐
- PAT (Advanced Level) Practise 1062 Talent and Virtue (25)
- PAT - 甲级 - 1062. Talent and Virtue (25)(排序)
- PAT A 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- PAT 1062. Talent and Virtue (25)
- 1015. 德才论 (25) PAT乙级&1062. Talent and Virtue (25)PAT甲级
- 1062. Talent and Virtue (25)
- 【PAT】1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 【C++】PAT (advanced level)1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- pat 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25) 大量输入输出 scanf printf会比cin cout 省很多时间
- 【PAT】【Advanced Level】1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- PAT-A-1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)