PAT-乙级-1055. 集体照 (25)
1055. 集体照 (25)
拍集体照时队形很重要,这里对给定的N个人K排的队形设计排队规则如下:
- 每排人数为N/K(向下取整),多出来的人全部站在最后一排;
- 后排所有人的个子都不比前排任何人矮;
- 每排中最高者站中间(中间位置为m/2+1,其中m为该排人数,除法向下取整);
- 每排其他人以中间人为轴,按身高非增序,先右后左交替入队站在中间人的两侧(例如5人身高为190、188、186、175、170,则队形为175、188、190、186、170。这里假设你面对拍照者,所以你的左边是中间人的右边);
- 若多人身高相同,则按名字的字典序升序排列。这里保证无重名。
现给定一组拍照人,请编写程序输出他们的队形。
输入格式:
每个输入包含1个测试用例。每个测试用例第1行给出两个正整数N(<=10000,总人数)和K(<=10,总排数)。随后N行,每行给出一个人的名字(不包含空格、长度不超过8个英文字母)和身高([30, 300]区间内的整数)。
输出格式:
输出拍照的队形。即K排人名,其间以空格分隔,行末不得有多余空格。注意:假设你面对拍照者,后排的人输出在上方,前排输出在下方。
输入样例:
10 3
Tom 188
Mike 170
Eva 168
Tim 160
Joe 190
Ann 168
Bob 175
Nick 186
Amy 160
John 159
输出样例:
Bob Tom Joe Nick
Ann Mike Eva
Tim Amy John
#include <string>
#include <iostream>
#include <algorithm>
#include <deque>
#include <vector> #define MAX_K 12 struct student {
std::string name;
int height;
}; bool cmp(student a, student b) {
if (a.height == b.height) return a.name > b.name;
return a.height < b.height;
} std::vector<student> students;
std::vector<student> team[MAX_K];
int N, K; std::deque<student> que; void output(int x) {
while (que.size()) que.pop_front();
bool flag = true;
for (int i = team[x].size() - ; i >= ; i--) {
if (flag)
que.push_back(team[x][i]);
else
que.push_front(team[x][i]);
flag = !flag;
}
while (que.size()) {
student u = que.front();
que.pop_front();
std::cout << u.name;
if (que.size() == )
std::cout << std::endl;
else
std::cout << " ";
}
} int main() {
std::cin.sync_with_stdio(false);
std::cin >> N >> K;
for (int i = ; i < N; i++) {
student stu;
std::cin >> stu.name >> stu.height;
students.push_back(stu);
}
std::sort(students.begin(), students.end(), cmp); for (int i = ; i < K; i++)
for (int j = ; j < N / K; j++)
team[i].push_back(students[j + i * (N / K)]);
for (int j = K * (N / K); j < N; j++)
team[K - ].push_back(students[j]); for (int i = K - ; i >= ; i--)
output(i);
return ;
}
PAT-乙级-1055. 集体照 (25)的更多相关文章
- PAT Basic 1055 集体照 (25 分)
拍集体照时队形很重要,这里对给定的 N 个人 K 排的队形设计排队规则如下: 每排人数为 /(向下取整),多出来的人全部站在最后一排: 后排所有人的个子都不比前排任何人矮: 每排中最高者站中间(中间位 ...
- PAT (Basic Level) Practice (中文)1055 集体照 (25 分) 凌宸1642
PAT (Basic Level) Practice (中文)1055 集体照 (25 分) 凌宸1642 题目描述: 拍集体照时队形很重要,这里对给定的 N 个人 K 排的队形设计排队规则如下: 每 ...
- PAT 1055 集体照 (25)(STL-list+代码)
1055 集体照 (25)(25 分)提问 拍集体照时队形很重要,这里对给定的N个人K排的队形设计排队规则如下: 每排人数为N/K(向下取整),多出来的人全部站在最后一排: 后排所有人的个子都不比前排 ...
- PAT(B) 1055 集体照(Java)
题目链接:1055 集体照 (25 point(s)) 题目描述 拍集体照时队形很重要,这里对给定的 N 个人 K 排的队形设计排队规则如下: 每排人数为 N/K(向下取整),多出来的人全部站在最后一 ...
- PAT 1055. 集体照 (25)
拍集体照时队形很重要,这里对给定的N个人K排的队形设计排队规则如下: 每排人数为N/K(向下取整),多出来的人全部站在最后一排: 后排所有人的个子都不比前排任何人矮: 每排中最高者站中间(中间位置为m ...
- PAT乙级 1020. 月饼 (25)(只得到23分)
1020. 月饼 (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 月饼是中国人在中秋佳节时吃的一种传统食 ...
- PAT 乙级 1020 月饼 (25) C++版
1020. 月饼 (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 月饼是中国人在中秋佳节时吃的一种传统食 ...
- 1055 集体照 (25 分)C语言
拍集体照时队形很重要,这里对给定的 N 个人 K 排的队形设计排队规则如下: 每排人数为 N/K(向下取整),多出来的人全部站在最后一排: 后排所有人的个子都不比前排任何人矮: 每排中最高者站中间(中 ...
- PAT乙级 解题目录
有些题做得可能比较傻,有好方法,或者有错误还请告诉我,多多指教=.= 思路比较好的题目我都有讲的很详细. 剩下三道题有待优化,等改好了再上传. 标题 题目链接 解题链接 1001 害死人不偿命的( ...
随机推荐
- 学习 AngularJS 第一天
AngularJS 高级程序设计 遇到问题:安装web服务器 var connect = require("connect"); connect.createServer( con ...
- 单机版简单弹幕墙demo (jqery+bootstrap)
最近在看fcc ,上面有一个弹幕墙设计的题目,要求从后端获取数据,显示出来.百度,谷歌都没找到相关好的例子作为借鉴,索性按照自己的思路写了一个简单的demo .在做demo的过程中遇到最大的问题就 ...
- Linux man 用法小结(Linux指令学习笔记)
今天买了一本<<Linux命令行与shell脚本编程大全>>,想利用暑假放假的时间系统的学习一下 Linux的shell脚本.今天看了一下书,才发现我之前学习,把Linux s ...
- Informix 物联网应用示例(转)
相关概念 MQTT 是一个物联网传输协议,它被设计用于轻量级的发布/订阅式消息传输,旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务.MQTT 是专门针对物联网开发的轻量级传输协议.MQ ...
- Jquery操作Cookie取值错误的解决方法
使用JQuery操作cookie时 发生取的值不正确,结果发现cookie有四个不同的属性,分享下错误的原因及解决方法. 使用JQuery操作cookie时 发生取的值不正确的问题: 结果发现coo ...
- phpExcel导出excel的类,每步都有说明
require_once WEB_PATH . '/lib/PHPExcel/PHPExcel.php'; require_once WEB_PATH . '/lib/PHPExcel/PHPExce ...
- PHP流程控制语句下
ok,继续搞. while循环: while(expr){ 程序块: } 条件expr成立执行程序块,否则结束. do while循环:do while循环比while循环要多循环一次,它要先执行程序 ...
- DevExpress12.2.6 安装顺序记录
环境DelphiXE,实测DevExpress手工安装顺序: 1.ExpressCore Library 2.XP Theme Manager 3.ExpressGDI+ Library 4.Expr ...
- Flash Activex NPAPI PPAPI 各种网页插件完整安装包下载地址
内容全部是自己手工原创写作的参考内容,完全排除从其他网站COPY的内容信息.如有雷同实属巧合. 奉献给有需求的人士,也给各位解决FLASH安装头疼的问题,正常在线下载安装运气不好的安装半天.运气好 ...
- js中ajax异步导致的一些问题
问题1:ajax默认是异步,所以在ajax中对外面定义的变量赋值,不能正确赋值 $("form").submit( var flag; $.ajax({ type: 'GET', ...