1015 德才论
分数 25
作者 CHEN, Li
单位 浙江大学
宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”
现给出一批考生的德才分数,请根据司马光的理论给出录取排名。
输入样例:
14 60 80 10000001 64 90 10000002 90 60 10000011 85 80 10000003 85 80 10000004 80 85 10000005 82 77 10000006 83 76 10000007 90 78 10000008 75 79 10000009 59 90 10000010 88 45 10000012 80 100 10000013 90 99 10000014 66 60
输出样例:
12 10000013 90 99 10000012 80 100 10000003 85 80 10000011 85 80 10000004 80 85 10000007 90 78 10000006 83 76 10000005 82 77 10000002 90 60 10000014 66 60 10000008 75 79 10000001 64 90
我的代码(41行ac):
#include#include #include using namespace std; struct Student{ int id,virtue,talent; }; bool cmp(Student x,Student y){//sort()函数的排序准则cmp的定义,重点 if(x.virtue+x.talent == y.virtue+y.talent){ if(x.virtue == y.virtue) return x.id < y.id; return x.virtue >y.virtue; } return x.virtue+x.talent > y.virtue+y.talent; } int main(){ int n,l,h; cin>>n>>l>>h; Student stu; vector v1,v2,v3,v4; int cnt = 0; for(int i=0;i cin>>stu.id>>stu.virtue>>stu.talent; if(stu.virtue>=l && stu.talent>=l){ ++cnt; if(stu.virtue>=h && stu.talent>=h) v1.push_back(stu); else if(stu.virtue>=h && stu.talent =stu.talent) v3.push_back(stu); else v4.push_back(stu); } } cout< ps:
1.sort(begin,end,cmp)函数的使用;
2.sort()的排序准则cmp(x,y)的设计;参考:https://blog.csdn.net/qq_41575507/article/details/105936466?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165468598716782425122685%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=165468598716782425122685&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogtop_positive~default-1-105936466-null-null.nonecase&utm_term=sort&spm=1018.2226.3001.4450
C++ Reference:https://cplusplus.com/reference/algorithm/sort/
3.01:24。



