开始的做法是,对于每一个case,都在整个person数组内进行遍历,把所有年龄符合要求的都放进一个临时数组,然后对临时数组进行排序,再根据要求的数目输出。但是这么做会有一个测试用例因为超时而通不过。

穷则思变。于是改成读入全部数据之后对完整的数组进行排序,之后不再排序。对于每一个case,设置两个变量idx,hasOut,上限分别是全部数据的数量和要求输出的数量,对全部数组进行遍历输出,二者中的任何一个达到上限即停止。注意:idx是每一轮都会自增,hasOut只有在输出一条信息时才自增。

AC代码

#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<bits/stdc++.h>
using namespace std;const int maxn = 100010;
const double eps = 1e-3;struct person{char name[10] = "";int age = 0;int worth = 0;
}people[maxn];bool cmp(person a,person b){if(a.worth!=b.worth) return a.worth>b.worth;else if(a.age!=b.age)return a.age<b.age;else if(strcmp(a.name,b.name)!=0)return strcmp(a.name,b.name)<0;
}int main(){int n,k;scanf("%d %d",&n,&k);for(int i=0;i<n;i++){scanf("%s",people[i].name);scanf("%d",&people[i].age);scanf("%d",&people[i].worth);}sort(people,people+n,cmp);for(int i=0;i<k;i++){printf("Case #%d:\n",i+1);int outputs = 0;int Amin = 0;int Amax = 0;scanf("%d %d %d",&outputs,&Amin,&Amax);int hasOut = 0;int idx = 0;while(idx<n&&hasOut<outputs){if(people[idx].age>=Amin&&people[idx].age<=Amax){printf("%s %d %d\n",people[idx].name,people[idx].age,people[idx].worth);hasOut ++;}idx ++;}if(hasOut==0)printf("None");}}

1055 The World‘s Richest相关推荐

  1. PAT甲级1055 The World‘s Richest:[C++题解]k路归并

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 采用二维数组vector[N]来存每个年龄的人(结构体),然后分别从大到小排序.剩下的任务就是从给定的年龄[a ,b]中,k路归并最 ...

  2. 1055. The World's Richest (25)

    1055. The World's Richest (25) 时间限制 400 ms 内存限制 128000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue ...

  3. 【附超时原因】1055 The World‘s Richest (25 分)_42行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Forbes magazine publishes every year its list of billionaires bas ...

  4. 1055 The World‘s Richest (25 分)【难度: 一般 / 知识点: 多关键字排序】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805421066272768 这里: 注意用scanf,printf. 有 ...

  5. PAT日志 1055

    顽强的小白 1055 The World's Richest (25 分) Forbes magazine publishes every year its list of billionaires ...

  6. PAT甲级1042~1055

    前言:距离四级考试剩23天,PAT甲级考试剩24天 对PAT甲级练习题做总结 1042 Shuffling Machine (20 分) 题目大意: 重复给出排列方式,把放在下标 i i i的牌调换到 ...

  7. 【最新合集】PAT甲级最优题解(题解+解析+代码)

    以下每道题均是笔者多方对比后, 思考整理得到的最优代码,欢迎交流! 共同成长哇.可以和博主比拼一下谁刷的更快~ 欢迎收藏.欢迎来玩儿 PAT题解目录 题号 标题 题解 分类 使用算法 1001 A+B ...

  8. PAT (Advanced Level) Practice 题解代码 - II (1051-1100)

    PAT PAT (Advanced Level) Practice - II(1051-1100) -------------------------------------------------- ...

  9. PAT甲级训练合集(1-70)

    本章题解跳转 考点 P1001 数字的数组表示和处理 P1002 多项式的数组表示和处理 P1003 深度优先搜素 P1004 深度优先搜素 P1005 哈希表 P1006 P1007 数组子区间求和 ...

最新文章

  1. 【学习——字符串】字符串之一网打尽quq
  2. springMvc的执行流程(源码分析)
  3. HDU1598最小生成树+贪心处理
  4. 3.3.2 差错控制(检错编码)
  5. JavaScript高级程序设计(二):在HTML中使用JavaScript
  6. 北斗导航 | Matlab实现电离层延迟计算:Klobuchar(源代码)
  7. dedecms的自定义模块
  8. IOC与DI(xml 配置)
  9. (2)ZYNQ FPGA加载比特流(FPGA不积跬步101)
  10. 数码相机成像原理CCD和CMOS及相机模组分析
  11. 19张网络工程师必看的思维导图
  12. 【Bugs】Hbase:File system needs to be upgraded. You have version null and I want version(habse缓冲问题)
  13. 移远4g LTE模块at指令集合
  14. Python中的立方根
  15. 支付宝人脸认证(安卓)
  16. 2022-06-06 FUSE用户态文件系统
  17. 图解2022年城市人口迁移趋势
  18. Halcon算子—create_shape_model参数解析及优化
  19. 如何用无人机倾斜摄影采集影像,完成实景三维重建?
  20. python基于php+MySQL的个人网站的设计与实现

热门文章

  1. iOS NSObject对象内存大小
  2. K-Means聚类算法原理
  3. 那些对混合云开发和应用程序环境的错误认识
  4. ALSA声卡驱动中的DAPM详解之四:在驱动程序中初始化并注册widget和route
  5. 1月国内操作系统市场:Windows XP份额高达60.84%
  6. [转]Java Os Properties
  7. 使用wget在linux服务器上下载oracle软件
  8. COM 组件设计与应用(六)——用 ATL 写第一个组件(vc.net)
  9. laravel项目composer安装
  10. 发布开源框架到CocoaPods入坑指南