1062.Talent and Virtue (25)
来源:互联网 发布:反dns劫持 软件 编辑:程序博客网 时间:2024/05/22 03:47
1062.Talent and Virtue (25)
pat-al-1062
2017-03-01
- 乙级做过,这次又做了一遍,感觉流畅多了,并做了优化
- 利用state来保存等级(sage、nobleman、foolman和其他),在比较函数cmp中直接利用这个排序,就不必将四种学生分在四个数组里了
- 利用vector来保存
/** * pat-al-1062 * 2017-03-01 * Cpp version * Author: fengLian_s */#include<stdio.h>#include<algorithm>#include<vector>#define MAX 100010using namespace std;struct STU{ int id; int virtue; int talent; int total; int state;//1是sage,2是nobleman,3是foolman,4是其他}newStu;bool cmp(STU a, STU b){ if(a.state != b.state) return a.state < b.state; else { if(a.total != b.total) return a.total > b.total; else { if(a.virtue != b. virtue) return a.virtue > b.virtue; else return a.id < b.id; } }}int main(){ freopen("in.txt", "r", stdin); int n, l, h; scanf("%d%d%d", &n, &l, &h); int id, virtue, talent, cnt = 0; vector<STU> stu; for(int i = 0;i < n;i++) { scanf("%d%d%d", &id, &virtue, & talent); if(virtue >= l && talent >= l) { cnt++; newStu.id = id; newStu.virtue = virtue; newStu.talent = talent; newStu.total = virtue + talent; } else continue; if(virtue >= h && talent >= h) newStu.state = 1; else if(virtue >=h && talent < h) newStu.state = 2; else if(virtue < h && talent < h && virtue >= talent) newStu.state = 3; else newStu.state = 4; stu.push_back(newStu); //printf("%08d %d\n", newStu.id, newStu.state); } sort(stu.begin(), stu.end(), cmp); // printf("%08d %d %d %d\n", stu[0].id, stu[0].virtue, stu[0].talent, stu[0].state); // for(int i = 1;i < cnt;i++) // { // printf("%08d %d %d %d\n", stu[i].id, stu[i].virtue, stu[i].talent, stu[i].state); // } if(cnt != 0) printf("%d\n", cnt); else { printf("0\n"); return 0; } printf("%08d %d %d\n", stu[0].id, stu[0].virtue, stu[0].talent); for(int i = 1;i < cnt;i++) { printf("%08d %d %d\n", stu[i].id, stu[i].virtue, stu[i].talent); } return 0;}
-FIN-
0 0
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- CUDA编程实战-1
- Android屏幕密度(Density)和分辨率概念详解
- 判断java中两个对象是否相等
- 字符串和数字的格式化(基础)
- openwrt添加自定义应用程序开机启动
- 1062.Talent and Virtue (25)
- Php像Jquery一样解析和抓取Html元素
- C语言--数组
- 数据化管理第一步,你真的会做报表吗?
- windows下nmake一些错误的解决办法
- Android-->打造无限循环的RecyclerView
- X-Pack-5.2.1安装
- ubuntu16.04下交叉编译 MultiCol-SLAM 过程
- UIViewContentMode各类型效果