【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)
题目描述 宋代史学家司马光在<资治通鉴>中有一段著名的"德才论":"是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人.凡取人之术,苟不得 ...
随机推荐
- HTML常用特殊字符编码对照表以及其对应英文
符号 说明 对应编码(使用时去掉空格) 英文 & AND 符号 & amp; ampersand < 小于 & lt; little > 大于 & gt; ...
- 2.Django路由规则
路由规则 1.基于正则的url 在templates目录下创建index.html.detail.html文件 (1)index.html <!DOCTYPE html> <html ...
- Pytorch入门实例:mnist分类训练
#!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = 'denny' __time__ = '2017-9-9 9:03' import ...
- 启动MongoDB shell客户端会什么会一闪而过
解决办法: 在MongoDB shell客户端根目录下右击选择 "在此处打开命令窗口"; 在命令窗口敲入mongod --dbpath=d:/mongodb/data ; //我的 ...
- 使用npm安装配置vue
npm安装很慢(国外服务器),所以一般推荐使用npm淘宝镜像cnpm,先安装下cnpm: npm install -g cnpm --registry=https://registry.npm.tao ...
- Lucene 06 - 使用Lucene的Query API查询数据
目录 1 Query对象的创建(方式一): 使用子类对象 1.1 常用的Query子类对象 1.2 常用的Query子类对象使用 1.2.1 使用TermQuery 1.2.2 使用NumericRa ...
- Python:数据可视化pyecharts的使用
什么是pyecharts? pyecharts 是一个用于生成 Echarts 图表的类库. echarts 是百度开源的一个数据可视化 JS 库,主要用于数据可视化.pyecharts 是一个用于生 ...
- leetcode — gray-code
import org.lep.leetcode.groupanagrams.GroupAnagram; import java.util.ArrayList; import java.util.Arr ...
- linux文本处理三剑客的学习
linux下有三个文本处理的神器.分别是grep,sed,awk.功能都是比较强大的. grep帮助: http://my-study-grep.readthedocs.io/en/latest/ s ...
- [零] Java 语言运行原理 JVM原理浅析 入门了解简介 Java语言组成部分 javap命令使用
Java Virtual Machine 官方介绍 Java虚拟机规范官方文档 https://docs.oracle.com/javase/specs/index.html 其中以java8的为 ...