08-排序3. Talent and Virtue (25)
2015-08-24 16:08
393 查看
题目地址:http://www.patest.cn/contests/mooc-ds/08-%E6%8E%92%E5%BA%8F3
根据题目要求 , 编写合适的比较函数,这里先分类,
不同类直接比较
同类别再一步的比较
根据题目要求 , 编写合适的比较函数,这里先分类,
不同类直接比较
同类别再一步的比较
/* 08-排序3. Talent and Virtue (25) http://www.patest.cn/contests/mooc-ds/08-%E6%8E%92%E5%BA%8F3 */ #include <cstdio> #include <cstring> #include <algorithm> #include <vector> #include <string> #include <iostream> #include <cmath> #include <queue> using namespace std; #define N 1002 #define INF 999999999 int n, l, h; struct mydata { int id; int Virtue_Grade; int Talent_Grade; int totoal_score; int rank; }; vector<mydata> v; //bool isSages(mydata d) //{ // if (d.Virtue_Grade >= h && d.Talent_Grade >= h) // return true; // return false; //} // //bool isNoblemen(mydata d) //{ // if (d.Virtue_Grade >= h && d.Talent_Grade < h) // return true; // return false; //} // //bool isfoolmen(mydata d) //{ // if (d.Virtue_Grade < h && d.Talent_Grade <= d.Virtue_Grade) // return true; // return false; //} int grade(mydata d) { if (d.Virtue_Grade >= h && d.Talent_Grade >= h) return 1; if (d.Virtue_Grade >= h && d.Talent_Grade < h) return 2; if (d.Virtue_Grade < h && d.Talent_Grade <= d.Virtue_Grade) return 3; return 4; } bool cmp(mydata dt1, mydata dt2) { int g1 = grade(dt1); int g2 = grade(dt2); if (g1 < g2) return true; if (g1 == g2) { if (dt1.totoal_score > dt2.totoal_score) return true; if (dt1.totoal_score == dt2.totoal_score) { if (dt1.Virtue_Grade > dt2.Virtue_Grade) return true; if (dt1.Virtue_Grade == dt2.Virtue_Grade) return dt1.id < dt2.id; } } return false; } int main() { //freopen("in", "r", stdin); scanf("%d%d%d", &n, &l, &h); int i; mydata dt; for (i = 0; i < n; i++) { scanf("%d%d%d", &dt.id, &dt.Virtue_Grade, &dt.Talent_Grade); if (dt.Virtue_Grade >= l && dt.Talent_Grade >= l) { dt.totoal_score = dt.Talent_Grade + dt.Virtue_Grade; v.push_back(dt); } } int len = v.size(); if (len > 1) sort(v.begin(), v.end(), cmp); printf("%d\n", len); for (i = 0; i < len; i++) { printf("%08d %d %d\n", v[i].id, v[i].Virtue_Grade, v[i].Talent_Grade); } //printf("\n"); return 0; }
相关文章推荐
- 调用[[UIDevice currentDevice] userInterfaceIdiom]==UIUserInterfaceIdiomPad判断设备
- UE4 WorldPositionOffset
- 【已解决】Request exceeded the limit of 10 internal redirects due to probable configuration error.
- 关于UIView的autoresizingMask属性的研究
- UE3 供游戏性程序员的使用的性能最优化方法
- Codeforces 313B : Ilya and Queries
- UE4 Light Propagation Volumes
- poj--2778DNA Sequence+AC自动机+矩阵快速幂
- A Flexible New Technique for Camera Calibration
- IOS生成UUID
- [LeedCode OJ]#232 Implement Queue using Stacks
- [LeedCode OJ]#225 Implement Stack using Queues
- MSBuild 命令行编译项目且不包含pdb文件
- STL学习----入门(1)[deque]
- iOS:让UIView覆盖导航栏
- require.js
- iOS基础-高级视图-UITableView--静态单元格
- uva 11324 the largest clique (2-sat 二分答案)
- Easyui datagrid detailview使用简介
- NGUI 不写一行代码实现翻拍效果