开始的做法是,对于每一个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. sql server 常见约束
  2. 批量模糊查询_Django之ORM表高级操作、增删改查、F/Q查询等
  3. 【开发管理类软件必备知识视频教程之二】登录窗体后台注意事项
  4. iOS中画矩形的几种方法总结
  5. linux挂载磁盘没有权限,linux肿么知道哪个盘没有被挂载
  6. ansible之安装与简单使用
  7. 创建数据账号只有个别表的权限_只有普通权限账号,如何把远程数据库中该用户的数据表导入到本地数据库?...
  8. mali GPU 官网指南
  9. linux 小红伞使用手册,安装LINUX下小红伞图文教程.pdf
  10. R语言IBM股票月对数收益率的Egarch模型
  11. WebRTC视频码率控制(序言)
  12. 读《出梁庄记》乱摘2
  13. 数字化转型中基于交付价值数据治理的6大原则
  14. springcloud(一)微服务概述
  15. DELL台式机安装Centos7无法正常展示图形化安装界面
  16. 在此之前我不知道啥事JSON
  17. 反爬与反反爬常见知识点
  18. 自定义控件 仿微信朋友圈文字展开全文功能
  19. 计算机图形学 学习笔记 图元的属性
  20. 稻城亚丁,从你的全世界路过

热门文章

  1. ThunderGBM:快成一道闪电的梯度提升决策树
  2. Linux Test Project 测试套件说明
  3. SQL Server 2014新特性——基数评估(白皮书阅读笔记)
  4. linux 服务器FTP服务安装教程
  5. mysql======基本的数据查询(1)
  6. Remove Duplicates from Sorted Array II -- LeetCode
  7. Spring源代码解析(十):Spring Acegi框架授权的实现
  8. 史上最强女游戏程序员
  9. 不要一辈子靠技术生存
  10. 7——ThinkPhp中的响应和重定向: