【PAT】B1015 德才论
这道题算是挺简单,我在群里看到的别人琢磨好久过不去,大多是因为没有考虑好四种等级的判断条件
一定要保证四种判断条件正确。
下面这是我的代码,比较笨。后边有别人那学来的聪明些的方法
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
struct student{
int number,de,cai,sum;
}A[100000],//H(<100为优先录取线——德分和才分均不低于此线的被定义为“才德全尽”,
B[100000],//才分不到但德分到线的一类考生属于“德胜才”,
C[100000],//德才分均低于H,但是德分不低于才分的考生属于“才德兼亡”但尚有“德胜才”者
D[100000];//其他达到最低线L的考生也
int num=0;
bool cmp(student A,student B){
if(A.sum!=B.sum) return A.sum>B.sum;
else if(A.de!=B.de) return A.de>B.de;
else return A.number<B.number;
}
void prr(student *arr,int Si){
for(int i=0;i<Si;i++){
printf("%08d %d %d",arr[i].number,arr[i].de,arr[i].cai);
num--;
if(num!=0)printf("\n");
}
}
int main(){
int N,L,H,AA,BB,CC,DD;
AA=BB=CC=DD=0;
student temp;
scanf("%d%d%d",&N,&L,&H);
for(int i=0;i<N;i++){
scanf("%d %d %d",&temp.number,&temp.de,&temp.cai);
temp.sum=temp.de+temp.cai;
if(temp.de>=L&&temp.cai>=L){
num++;
if(temp.cai>=H&&temp.de>=H){A[AA++]=temp;continue;}
if(temp.de>=H&&temp.cai<H) {B[BB++]=temp;continue;}
if(temp.cai<H&&temp.de<H&&temp.de>=temp.cai){C[CC++]=temp;continue;}
D[DD++]=temp;
}
}
sort(A,A+AA,cmp);
sort(B,B+BB,cmp);
sort(C,C+CC,cmp);
sort(D,D+DD,cmp);
printf("%d\n",num);
prr(A,AA);
prr(B,BB);
prr(C,CC);
prr(D,DD);
return 0;
}
好方法:
用结构体数组储存数据,每个数据有一个等级变量,通过这个变量和sort函数排序,直接将四种等级分开了,省去好多事
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct stu{
char id[10];
int D;int C;
int flag,sum;
}temp,ex[100010];
bool cmp(stu a,stu b){
if(a.flag!=b.flag)return a.flag<b.flag;
else if(a.sum!=b.sum)return a.sum>b.sum;
else if(a.D!=b.D)return a.D>b.D;
else return strcmp(a.id,b.id)<0;
}
int main(){
int N,L,H,local=0;
scanf("%d %d %d",&N,&L,&H);
for(int i=0;i<N;i++){
scanf("%s %d %d",temp.id,&temp.D,&temp.C);
if(temp.D<L||temp.C<L)continue;
strcpy(ex[local].id,temp.id);
ex[local].D=temp.D;
ex[local].C=temp.C;
if(ex[local].D>=H&&ex[local].C>=H)ex[local].flag=1;
else if(ex[local].D>=H&&ex[i].C<H)ex[local].flag=2;
else if(ex[local].D<H&&ex[local].C<H&&ex[local].D>=ex[local].C)ex[local].flag=3;
else ex[local].flag=4;
ex[local].sum=ex[local].D+ex[local].C;
local++;
}
sort(ex,ex+local,cmp);
printf("%d\n",local);
for(int i=0;i<local;i++){
printf("%s %d %d\n",ex[i].id,ex[i].D,ex[i].C);
}
return 0;
}
【PAT】B1015 德才论的更多相关文章
- PAT B1015 德才论 (25 分)
宋代史学家司马光在<资治通鉴>中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人.凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人 ...
- PAT B1015德才论
题目描述: 宋代史学家司马光在<资治通鉴>中有一段著名的"德才论":"是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人.凡取人之术,苟不 ...
- PAT 1015. 德才论 (25) JAVA
宋代史学家司马光在<资治通鉴>中有一段著名的"德才论":"是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人.凡取人之术,苟不得圣人,君子 ...
- PAT 1015. 德才论 (25)
宋代史学家司马光在<资治通鉴>中有一段著名的"德才论":"是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人.凡取人之术,苟不得圣人,君子 ...
- PAT 1015 德才论 (25)(代码+思路)
1015 德才论 (25)(25 分)提问 宋代史学家司马光在<资治通鉴>中有一段著名的"德才论":"是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子, ...
- PAT——1015. 德才论
宋代史学家司马光在<资治通鉴>中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人.凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人 ...
- 【算法笔记】B1015 德才论
1015 德才论 (25 分) 宋代史学家司马光在<资治通鉴>中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人.凡取人之术,苟不得圣人,君 ...
- PAT 1015 德才论
https://pintia.cn/problem-sets/994805260223102976/problems/994805307551629312 宋代史学家司马光在<资治通鉴>中 ...
- PAT B1015A1062德才论(25)
题目描述 宋代史学家司马光在<资治通鉴>中有一段著名的"德才论":"是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人.凡取人之术,苟不得 ...
随机推荐
- 剖析项目多个logback配置(上)
来源:http://www.cnblogs.com/guozp/p/5949744.html 以下两个是我在使用slf4j + logback时候日志提示的问题,问题不大,都是WARN,并不真正影响运 ...
- 【Scala篇】--Scala初始与基础
一.前述 Scala是基于JVM的另一个语言. Scala官网6个特征. 1).Java和scala可以混编 2).类型推测(自动推测类型) 3).并发和分布式(Actor) 4).特质,特征(类似j ...
- 就算会用python画颗心,可你依然还是只单身狗
:) 标题是开玩笑的,千万别认真. 随着AI的飞速发展,有志于此行的码农也是急剧的增加,带来的就是大家对算法.数学的兴趣也格外升高. 本文的来历是这样,今天某老同事在朋友圈发了一张屏拍,求公式. 看了 ...
- angr进阶(5)内存操作
angr也可以将符号写在内存里,控制内存中的值,结合任意位置开始有奇效,但就是慢sym-write p = angr.Project('./issue', load_options={"au ...
- JAVA 连等赋值问题
一.描述 关于 Java 连等赋值,例如a=b=c;我们知道它是从右往左依次赋值的,其结果大致可以拆分为b=c;a=b;,但是当栈中没有持有变量的引用时,则会出现问题,例如: public class ...
- jumpserver篇--安装(高可用性 mariadb+haproxy)
1. 需求 为了解决目前登陆方式多种多样,防火墙配置复杂,历史操作无记录,用户权限混乱等等 2. Jumpserver测试环境搭建 2.1. 环境 os:CentOS release 6.8 mini ...
- ASP.NET Core 2.0 : 八.图说管道,唐僧扫塔的故事
本文通过一张GIF动图来继续聊一下ASP.NET Core的请求处理管道,从管道的配置.构建以及请求处理流程等方面做一下详细的研究.(ASP.NET Core系列目录) 一.概述 上文说到,请求是经过 ...
- [二] JavaIO之File详解 以及FileSystem WinNTFileSystem简介
File类 文件和目录路径名的抽象表示形式. 我们知道,对于不同的操作系统,文件路径的描述是不同的 比如 windows平台:用\ linux平台:用/ File是Java为了这一概念提供的抽象描 ...
- Perl IO:文件锁
文件锁 当多个进程或多个程序都想要修同一个文件的时候,如果不加控制,多进程或多程序将可能导致文件更新的丢失. 例如进程1和进程2都要写入数据到a.txt中,进程1获取到了文件句柄,进程2也获取到了文件 ...
- cobbler批量安装系统使用详解-技术流ken
前言 cobbler是一个可以实现批量安装系统的Linux应用程序.它有别于pxe+kickstart,cobbler可以实现同个服务器批量安装不同操作系统版本. 系统环境准备及其下载cobbler ...