PAT_1062. Talent and Virtue
来源:互联网 发布:老调网新域名 编辑:程序博客网 时间:2024/05/29 13:26
//// main.cpp// PAT_1062. Talent and Virtue//// Created by wjq on 17/5/18.// Copyright © 2017年 wjq. All rights reserved.//#include <iostream>#include <algorithm>using namespace std;struct person{ int name; int talent,virtue;}sages[100005],noblemen[100005],foolmen[100005],smallmen[10005];int sagesID=0,nobleID=0,foolID=0,smallID=0;int N,L,H,numofperson;int cmp(person a,person b){ if(a.talent+a.virtue==b.talent+b.virtue) { if(a.virtue==b.virtue) return a.name<b.name; return a.virtue>b.virtue; } return a.talent+a.virtue>b.talent+b.virtue;}int main(int argc, const char * argv[]) { scanf("%d%d%d",&N,&L,&H); numofperson=N; int n,t,v; for(int i=0;i<N;i++) { scanf("%d%d%d",&n,&v,&t); if(t<L||v<L) { numofperson--; continue; } if(t>=H&&v>=H) { sages[sagesID].name=n; sages[sagesID].talent=t; sages[sagesID].virtue=v; sagesID++; } else if(t<H&&v>=H) { noblemen[nobleID].name=n; noblemen[nobleID].talent=t; noblemen[nobleID].virtue=v; nobleID++; } else if(t<H&&v<H&&v>=t) { foolmen[foolID].name=n; foolmen[foolID].talent=t; foolmen[foolID].virtue=v; foolID++; } else { smallmen[smallID].name=n; smallmen[smallID].talent=t; smallmen[smallID].virtue=v; smallID++; } } sort(sages,sages+sagesID,cmp); sort(noblemen,noblemen+nobleID,cmp); sort(foolmen,foolmen+foolID,cmp); sort(smallmen,smallmen+smallID,cmp); cout<<numofperson<<endl; for(int i=0;i<sagesID;i++) cout<<sages[i].name<<" "<<sages[i].virtue<<" "<<sages[i].talent<<endl; for(int i=0;i<nobleID;i++) cout<<noblemen[i].name<<" "<<noblemen[i].virtue<<" "<<noblemen[i].talent<<endl; for(int i=0;i<foolID;i++) cout<<foolmen[i].name<<" "<<foolmen[i].virtue<<" "<<foolmen[i].talent<<endl; for(int i=0;i<smallID;i++) cout<<smallmen[i].name<<" "<<smallmen[i].virtue<<" "<<smallmen[i].talent<<endl; return 0;}
两个case超时,重写一份代码.
//// main.cpp// PAT_1062. Talent and Virtue//// Created by wjq on 17/5/18.// Copyright © 2017年 wjq. All rights reserved.//#include <iostream>#include <algorithm>using namespace std;struct person{ int name,talent,virtue;}p[100005];int N,L,H,numofperson,pid=0;int cmp(person a,person b){ if(a.talent+a.virtue==b.talent+b.virtue) { if(a.virtue==b.virtue) return a.name<b.name; return a.virtue>b.virtue; } return a.talent+a.virtue>b.talent+b.virtue;}int main(int argc, const char * argv[]) { scanf("%d%d%d",&N,&L,&H); numofperson=N; int n,t,v; for(int i=0;i<N;i++) { scanf("%d%d%d",&n,&v,&t); if(t<L||v<L) { numofperson--; continue; } else { p[pid].name=n; p[pid].virtue=v; p[pid].talent=t; pid++; } } sort(p,p+pid,cmp); cout<<numofperson<<endl; for(int i=0;i<pid;i++) if(p[i].virtue>=H&&p[i].talent>=H) cout<<p[i].name<<" "<<p[i].virtue<<" "<<p[i].talent<<endl; for(int i=0;i<pid;i++) if(p[i].virtue>=H&&p[i].talent<H) cout<<p[i].name<<" "<<p[i].virtue<<" "<<p[i].talent<<endl; for(int i=0;i<pid;i++) if(p[i].virtue<H&&p[i].talent<H&&p[i].virtue>=p[i].talent) cout<<p[i].name<<" "<<p[i].virtue<<" "<<p[i].talent<<endl; for(int i=0;i<pid;i++) if(p[i].virtue<H&&p[i].virtue<p[i].talent) cout<<p[i].name<<" "<<p[i].virtue<<" "<<p[i].talent<<endl; return 0;}
阅读全文
0 0
- PAT_1062:Talent and Virtue
- PAT_1062. Talent and Virtue
- 1062. Talent and Virtue
- 1062. Talent and Virtue
- 1062.Talent and Virtue
- pat1062 Talent and Virtue
- 1062. Talent and Virtue
- 1062. Talent and Virtue
- 1062. Talent and Virtue
- 1062. Talent and Virtue
- 1062. Talent and Virtue
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- PAT 1062. Talent and Virtue
- 1062. Talent and Virtue (25)
- 08-1. Talent and Virtue
- 1062. Talent and Virtue (25)
- Jmeter之逻辑控制器
- 多线程详解
- Spring+SpringMVC+Mybatis 简单的整合实例
- BZOJ 3589: 动态树 树链剖分线段树
- ionic2图片保存到相册---利用cordova-plugin-photo-library插件
- PAT_1062. Talent and Virtue
- 什么是树?及相关术语?
- ProtocolBuffer在Swift中实践记录
- 数据库分组和分组函数
- Python之路,Day1
- java网络编程学习(二)
- 记录 在这个msdn的资源里面可以看到如下几个内容可供学习研究
- Linux sysfs文件系统
- android自定义view之测量父view和迭代测量子view