首页 > 其他分享 >1015 德才论

1015 德才论

时间:2024-07-31 23:27:16浏览次数:16  
标签:s2 德才 else flag 90 1015 80 s1

宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”

现给出一批考生的德才分数,请根据司马光的理论给出录取排名。

输入格式:

输入第一行给出 3 个正整数,分别为:N(≤105),即考生总数;L(≥60),为录取最低分数线,即德分和才分均不低于 L 的考生才有资格被考虑录取;H(<100),为优先录取线——德分和才分均不低于此线的被定义为“才德全尽”,此类考生按德才总分从高到低排序;才分不到但德分到优先录取线的一类考生属于“德胜才”,也按总分排序,但排在第一类考生之后;德才分均低于 H,但是德分不低于才分的考生属于“才德兼亡”但尚有“德胜才”者,按总分排序,但排在第二类考生之后;其他达到最低线 L 的考生也按总分排序,但排在第三类考生之后。

随后 N 行,每行给出一位考生的信息,包括:准考证号 德分 才分,其中准考证号为 8 位整数,德才分为区间 [0, 100] 内的整数。数字间以空格分隔。

输出格式:

输出第一行首先给出达到最低分数线的考生人数 M,随后 M 行,每行按照输入格式输出一位考生的信息,考生按输入中说明的规则从高到低排序。当某类考生中有多人总分相同时,按其德分降序排列;若德分也并列,则按准考证号的升序输出。

输入样例:

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

代码部分 

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
struct Stu {
	string id;
	int d, c, sum, flag;
}s[100001];
bool cmp(Stu s1, Stu s2) {
	if (s1.flag != s2.flag) return s1.flag < s2.flag;
	else if (s1.sum != s2.sum) return s1.sum > s2.sum;
	else if (s1.d != s2.d) return s1.d > s2.d;
	else return stoi(s1.id) < stoi(s2.id);
}
int main()
{
	int N, L, H;
	cin >> N >> L >> H;
	int cnt = N;
	for (int i = 0; i < N; i++) {
		cin >> s[i].id >> s[i].d >> s[i].c;
		s[i].sum = s[i].d + s[i].c;
		if (s[i].d < L || s[i].c < L) {
			s[i].flag = 0;
			cnt--;
		}
		else if (s[i].d >= H && s[i].c >= H) s[i].flag = 1;
		else if (s[i].d >= H && s[i].c < H) s[i].flag = 2;
		else if (s[i].d >= s[i].c) s[i].flag = 3;
		else s[i].flag = 4;
	}
	sort(s, s + N, cmp);
	cout << cnt << endl;
	for (int i = 0; i < N; i++) {
		if (s[i].flag != 0) {
			cout << s[i].id << ' ' << s[i].d << ' ' << s[i].c << endl;;
		}
	}
	return 0;
}

 

标签:s2,德才,else,flag,90,1015,80,s1
From: https://blog.csdn.net/2301_77605326/article/details/140834774

相关文章

  • PAT 乙级 1015题(为什么有测试点不对,求助)
    题目:德才论宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”现给出一批考生的德才分数,请根据司马光的理论给出录取排名。输入格式:输......
  • CF1015F 题解
    题面考虑这样的匹配问题,可以想如何确定第一次匹配,这样可以不重不漏地计数。考虑dp的时候同时维护有几个括号没有匹配,匹配到\(s\)的第几位,所以令\(f(i,j,k)\)表示dp到(要计数的序列的)第\(i\)个字符,有\(j\)个左括号没有匹配,匹配到\(s\)的第\(k\)位。转移很容易,考......
  • 「杂题乱刷2」CF1015D Walking Between Houses
    duel到的。题目链接CF1015DWalkingBetweenHouses解题思路一道细节题。思路很简单,肯定是一开始能走的越多越好,因此就有一种较好实现的方案,先每次走\(n-1\)格,但由于每次至少要走一格,因此如果不够走了就把能走的都走掉,之后全走\(1\)步即可。时间复杂度\(O(k)\)。参......
  • 打卡信奥刷题(22)用Scratch图形化工具信奥P1015 [NOIP1999 普及组] 回文数,写了一个好用
    P1015[NOIP1999普及组]回文数,用Scratch实现计算回文数,还写了一个比较好用的反序积木题目[NOIP1999普及组]回文数题目描述若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。例如:给定一个十进制数......
  • CSP历年复赛题-P1015 [NOIP1999 普及组] 回文数
    原题链接:https://www.luogu.com.cn/problem/P1015题意解读:一个N进制数M,把M正序和M逆序相加,几次之后得到是数是回文数,如果超过30次还无法得到回文数,输出Impossible!。解题思路:M最长100位,因此需要高精度,定义数组vector<int>m来存储整数M注意:16进制中可能存在'a~f''A~F'等字母,需......
  • P10156(dp思想)
    难度2也是比较有意思的一道题。首先发现每个小团体独立,所以对于每个小团体分开直接暴力dp,dp[i][j]表示当前小团体做到第i人,走了j人,然后O(n)转移,加上部分分喜提50pts。为什么要O(n)转移呢,因为我要枚举匹配的两个人然后算贡献。但是对于这种带绝对值的贡献,我们一般都要把绝对值拆掉......
  • 「杂题乱刷」洛谷 P10155
    题目链接P10155[LSOT-2]基于二分查找与插入的快速排序解题思路算法一:容易发现,当\(a_n\)不为\(n\)时,我们无论如何都无法将\(n\)这个值插入到最后一位,否则我们可以依次将所有数字从大到小插入,这样也可以保证失去最少的贡献。视写法获得\(40\)分或\(60\)分。算法二......
  • macOS Monterey 12.7.3 (21H1015) 正式版发布,ISO、IPSW、PKG 下载 (安全更新)
    macOSMonterey12.7.3(21H1015)正式版发布,ISO、IPSW、PKG下载1月22日,北京时间今日凌晨,macOSSonoma14.3发布,同时带来了macOSMonterey12.7.3和macOSVentru13.6.4安全更新。本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U......
  • macOS Monterey 12.7.3 (21H1015) Boot ISO 原版可引导镜像下载
    macOSMonterey12.7.3(21H1015)BootISO原版可引导镜像下载1月22日,北京时间今日凌晨,macOSSonoma14.3发布,同时带来了macOSMonterey12.7.3和macOSVentru13.6.4安全更新。本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘......
  • PAT_A1015 Reversible Primes
    A reversibleprime inanynumbersystemisaprimewhose"reverse"inthatnumbersystemisalsoaprime.Forexampleinthedecimalsystem73isareversibleprimebecauseitsreverse37isalsoaprime.Nowgivenanytwopositiveintegers N (&......