1055 The World‘s Richest
开始的做法是,对于每一个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相关推荐
- PAT甲级1055 The World‘s Richest:[C++题解]k路归并
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 采用二维数组vector[N]来存每个年龄的人(结构体),然后分别从大到小排序.剩下的任务就是从给定的年龄[a ,b]中,k路归并最 ...
- 1055. The World's Richest (25)
1055. The World's Richest (25) 时间限制 400 ms 内存限制 128000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue ...
- 【附超时原因】1055 The World‘s Richest (25 分)_42行代码AC
立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Forbes magazine publishes every year its list of billionaires bas ...
- 1055 The World‘s Richest (25 分)【难度: 一般 / 知识点: 多关键字排序】
https://pintia.cn/problem-sets/994805342720868352/problems/994805421066272768 这里: 注意用scanf,printf. 有 ...
- PAT日志 1055
顽强的小白 1055 The World's Richest (25 分) Forbes magazine publishes every year its list of billionaires ...
- PAT甲级1042~1055
前言:距离四级考试剩23天,PAT甲级考试剩24天 对PAT甲级练习题做总结 1042 Shuffling Machine (20 分) 题目大意: 重复给出排列方式,把放在下标 i i i的牌调换到 ...
- 【最新合集】PAT甲级最优题解(题解+解析+代码)
以下每道题均是笔者多方对比后, 思考整理得到的最优代码,欢迎交流! 共同成长哇.可以和博主比拼一下谁刷的更快~ 欢迎收藏.欢迎来玩儿 PAT题解目录 题号 标题 题解 分类 使用算法 1001 A+B ...
- PAT (Advanced Level) Practice 题解代码 - II (1051-1100)
PAT PAT (Advanced Level) Practice - II(1051-1100) -------------------------------------------------- ...
- PAT甲级训练合集(1-70)
本章题解跳转 考点 P1001 数字的数组表示和处理 P1002 多项式的数组表示和处理 P1003 深度优先搜素 P1004 深度优先搜素 P1005 哈希表 P1006 P1007 数组子区间求和 ...
最新文章
- sql server 常见约束
- 批量模糊查询_Django之ORM表高级操作、增删改查、F/Q查询等
- 【开发管理类软件必备知识视频教程之二】登录窗体后台注意事项
- iOS中画矩形的几种方法总结
- linux挂载磁盘没有权限,linux肿么知道哪个盘没有被挂载
- ansible之安装与简单使用
- 创建数据账号只有个别表的权限_只有普通权限账号,如何把远程数据库中该用户的数据表导入到本地数据库?...
- mali GPU 官网指南
- linux 小红伞使用手册,安装LINUX下小红伞图文教程.pdf
- R语言IBM股票月对数收益率的Egarch模型
- WebRTC视频码率控制(序言)
- 读《出梁庄记》乱摘2
- 数字化转型中基于交付价值数据治理的6大原则
- springcloud(一)微服务概述
- DELL台式机安装Centos7无法正常展示图形化安装界面
- 在此之前我不知道啥事JSON
- 反爬与反反爬常见知识点
- 自定义控件 仿微信朋友圈文字展开全文功能
- 计算机图形学 学习笔记 图元的属性
- 稻城亚丁,从你的全世界路过