1062. Talent and Virtue (25) 排序
2016-03-09 14:20
501 查看
传送门:https://www.patest.cn/contests/pat-a-practise/1062
#include <iostream>
#include <vector>
#include <math.h>
#include <algorithm>
using namespace std;
struct stu{
string str;
int DScore;
int CScore;
};
bool sortBy(stu a,stu b){
if (a.DScore+a.CScore!=b.DScore+b.CScore) {
return a.DScore+a.CScore>b.DScore+b.CScore;
}else{
if (a.DScore!=b.DScore)
return a.DScore>b.DScore;
else
return a.str<b.str;
}
}
int main() {
int N,L,H,count=0;
scanf("%d%d%d",&N,&L,&H);
vector<stu>stus1,stus2,stus3,stus4;
for (int i=0; i<N; i++) {
stu s;
char p[10];
scanf("%s%d%d",p,&s.DScore,&s.CScore);
s.str=p;
if (s.DScore>=L&&s.CScore>=L) {
count++;
if(s.DScore>=H&&s.CScore>=H)
stus1.push_back(s);
else if(s.DScore>=H&&s.CScore<H)
stus2.push_back(s);
else{
if (s.DScore>=s.CScore)
stus3.push_back(s);
else
stus4.push_back(s);
}
}
}
sort(stus1.begin(),stus1.end(),sortBy);
sort(stus2.begin(),stus2.end(),sortBy);
sort(stus3.begin(),stus3.end(),sortBy);
sort(stus4.begin(),stus4.end(),sortBy);
cout<<count<<endl;
for (stu s : stus1)
printf("%s %d %d\n",s.str.c_str(),s.DScore,s.CScore);
for (stu s : stus2)
printf("%s %d %d\n",s.str.c_str(),s.DScore,s.CScore);
for (stu s : stus3)
printf("%s %d %d\n",s.str.c_str(),s.DScore,s.CScore);
for (stu s : stus4)
printf("%s %d %d\n",s.str.c_str(),s.DScore,s.CScore);
return 0;
}
#include <iostream>
#include <vector>
#include <math.h>
#include <algorithm>
using namespace std;
struct stu{
string str;
int DScore;
int CScore;
};
bool sortBy(stu a,stu b){
if (a.DScore+a.CScore!=b.DScore+b.CScore) {
return a.DScore+a.CScore>b.DScore+b.CScore;
}else{
if (a.DScore!=b.DScore)
return a.DScore>b.DScore;
else
return a.str<b.str;
}
}
int main() {
int N,L,H,count=0;
scanf("%d%d%d",&N,&L,&H);
vector<stu>stus1,stus2,stus3,stus4;
for (int i=0; i<N; i++) {
stu s;
char p[10];
scanf("%s%d%d",p,&s.DScore,&s.CScore);
s.str=p;
if (s.DScore>=L&&s.CScore>=L) {
count++;
if(s.DScore>=H&&s.CScore>=H)
stus1.push_back(s);
else if(s.DScore>=H&&s.CScore<H)
stus2.push_back(s);
else{
if (s.DScore>=s.CScore)
stus3.push_back(s);
else
stus4.push_back(s);
}
}
}
sort(stus1.begin(),stus1.end(),sortBy);
sort(stus2.begin(),stus2.end(),sortBy);
sort(stus3.begin(),stus3.end(),sortBy);
sort(stus4.begin(),stus4.end(),sortBy);
cout<<count<<endl;
for (stu s : stus1)
printf("%s %d %d\n",s.str.c_str(),s.DScore,s.CScore);
for (stu s : stus2)
printf("%s %d %d\n",s.str.c_str(),s.DScore,s.CScore);
for (stu s : stus3)
printf("%s %d %d\n",s.str.c_str(),s.DScore,s.CScore);
for (stu s : stus4)
printf("%s %d %d\n",s.str.c_str(),s.DScore,s.CScore);
return 0;
}
相关文章推荐
- 《iOS Human Interface Guidelines》——Search Bar
- PHP中的break与continue
- Longest Consecutive Sequence
- 22.手势识别之UIPinchGestureRecognizer
- easyUI Combobox
- SurfaceView你所应该知道的事
- array_count_values() 函数
- UICollectionView cellForItemAtIndexPath 方法不走
- UITableView总结
- UIview需要知道的一些事情:setNeedsDisplay、setNeedsLayout
- EffectiveAndroidUI/UI框架
- PAT-Be Unique (20)
- 如何有效去掉分割线(UITableViewCellSeparatorView),并或控制单条分割线
- 智能指针(三):unique_ptr使用简介
- Confluence配置数据库
- BlueMix - IBM 的最新的云产品
- finished with non-zero exit value 2
- Error 'Can't drop database 'just'; database doesn't exist' on query.
- The error occurred while setting parameters 错误解析--Bad value for type timestamp : 3
- HDU 1560 DNA sequence DFS