很简单的two points问题

注意:K是行数

#include<stdio.h>
#include<string.h>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;
struct people{
char name[10];
int height;
}arr[10005];
bool cmp(people A,people B){
if(A.height!=B.height) return A.height<B.height;
else return strcmp(A.name,B.name)>0;
}
int main(){
int N,K;scanf("%d %d",&N,&K);
for(int i=0;i<N;i++){//输入
getchar();//吸收上一行的换行符
scanf("%s %d",arr[i].name,&arr[i].height);
}
sort(arr,arr+N,cmp);//排序
//让储存从下标1开始
people data[N/K*3];
int flag=N-1;
for(int i=K;i>=1;i--){//K排
int left=1,right=N/K;
if(i==K) right=N/K+N%K;
int mid=right/2+1;
int l=mid-1,r=mid+1;
data[mid]=arr[flag--];
while(l>=left||r<=right){
if(l>=left){
data[l--]=arr[flag--];
}
if(r<=right){
data[r++]=arr[flag--];
} }
for(int j=1;j<=right;j++){
if(j!=1) printf(" ");
printf("%s",data[j].name);
if(j==right&&i!=1) printf("\n");
}
}
getchar();
return 0;
}

【PAT】B1055 集体照(25 分)的更多相关文章

  1. PAT (Basic Level) Practice (中文)1055 集体照 (25 分) 凌宸1642

    PAT (Basic Level) Practice (中文)1055 集体照 (25 分) 凌宸1642 题目描述: 拍集体照时队形很重要,这里对给定的 N 个人 K 排的队形设计排队规则如下: 每 ...

  2. PAT 1055 集体照 (25)(STL-list+代码)

    1055 集体照 (25)(25 分)提问 拍集体照时队形很重要,这里对给定的N个人K排的队形设计排队规则如下: 每排人数为N/K(向下取整),多出来的人全部站在最后一排: 后排所有人的个子都不比前排 ...

  3. PAT Basic 1055 集体照 (25 分)

    拍集体照时队形很重要,这里对给定的 N 个人 K 排的队形设计排队规则如下: 每排人数为 /(向下取整),多出来的人全部站在最后一排: 后排所有人的个子都不比前排任何人矮: 每排中最高者站中间(中间位 ...

  4. 7-19 PAT Judge(25 分)

    The ranklist of PAT is generated from the status list, which shows the scores of the submissions. Th ...

  5. PAT A1075 PAT Judge (25 分)——结构体初始化,排序

    The ranklist of PAT is generated from the status list, which shows the scores of the submissions. Th ...

  6. 1095 解码PAT准考证 (25 分)

    PAT 准考证号由 4 部分组成: 第 1 位是级别,即 T 代表顶级:A 代表甲级:B 代表乙级: 第 2~4 位是考场编号,范围从 101 到 999: 第 5~10 位是考试日期,格式为年.月. ...

  7. 10-排序5 PAT Judge (25 分)

    The ranklist of PAT is generated from the status list, which shows the scores of the submissions. Th ...

  8. PAT Basic 1085 PAT单位排行 (25 分)

    每次 PAT 考试结束后,考试中心都会发布一个考生单位排行榜.本题就请你实现这个功能. 输入格式: 输入第一行给出一个正整数 N(≤),即考生人数.随后 N 行,每行按下列格式给出一个考生的信息: 准 ...

  9. PAT 1055. 集体照 (25)

    拍集体照时队形很重要,这里对给定的N个人K排的队形设计排队规则如下: 每排人数为N/K(向下取整),多出来的人全部站在最后一排: 后排所有人的个子都不比前排任何人矮: 每排中最高者站中间(中间位置为m ...

  10. 1093 Count PAT's(25 分)

    The string APPAPT contains two PAT's as substrings. The first one is formed by the 2nd, the 4th, and ...

随机推荐

  1. Postgresql操作json格式数据

    1.select array_to_json('{{1,5},{99,100}}'::int[])

  2. Python之列表推导式

    我们经常需要这样处理一个列表:把一个列表里面的每个元素, 经过相同的处理 ,生成另一个列表. 比如:一个列表1,里面都是数字,我们需要生成一个新的列表B,依次存放列表A中每个元素的平方 怎么办? 当然 ...

  3. Docker国内仓库和镜像

    由于网络原因,我们在pull Image 的时候,从Docker Hub上下载会很慢...所以,国内的Docker爱好者们就添加了一些国内的镜像(mirror),方便大家使用. 一.国内Docker仓 ...

  4. 利用python数据分析与挖掘相关资料总结

    小生今年研二,目前主要从事软件工程数据挖掘与分析.之前一直苦于找不到一个从数据预处理.数据分析.数据可视化和软件建模的统一平台.因此,小生辗转反辙学习了java,R语言,python,scala等等. ...

  5. 动态规划法(三)子集和问题(Subset sum problem)

      继续讲故事~~   上次讲到我们的主人公丁丁,用神奇的动态规划法解决了杂货店老板的两个找零钱问题,得到了老板的肯定.之后,他就决心去大城市闯荡了,看一看外面更大的世界.   这天,丁丁刚回到家,他 ...

  6. js判断字符串是否在数组中

    先加一个扩展函数: Array.prototype.contains = function (obj) {  var index = this.length;  while (index–) {   ...

  7. 图片上传预览js

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. c# 获取本机IP

    /// <summary> /// 获取本机IP /// </summary> /// <returns></returns> public stati ...

  9. c# DataReader转换为Json

    /// <summary> /// DataReader转换为Json /// </summary> /// <param name="dataReader&q ...

  10. 一款非常好用的万能本地离线激活工具,支持Office2016、Office2015、Win7、Win8/8.1/10、Win2008/2012/R2系统,全自动安装且无需联网状态即可全部激活,它由国外网友heldigard制作,小巧、简单,只需运行而不用去管它自动激活,能自动激活为180天无限循环,欢迎大家下载使用

    office2016激活工具(KMS)是一款非常好用的万能本地离线激活工具,支持Office2016.Office2015.Win7.Win8/8.1/10.Win2008/2012/R2系统,全自动 ...