1109 Group Photo

#include<iostream>

#include<vector>

#include<algorithm>

using namespace std;

int n,k;

struct node{

string name;

int height;

};

bool cmp(struct node a,struct node b){

return a.height!=b.height?a.height>b.height:a.name<b.name;

}

int main(){

cin>>n>>k;

int m;

vector<node>stu(n);

for(int i=0;i<n;i++){

cin>>stu[i].name;

cin>>stu[i].height;

}

sort(stu.begin(),stu.end(),cmp);

int t=0,row=k;//t是已处理的学生索引

//计算每行人数

while(row){

if(row==k){

m=n-n/k*(k-1);

}else{

m=n/k;

}

vector<string>ans(m);

ans[m/2]=stu[t].name;

//左边一列

int j=m/2-1;

for(int i=t+1;i<t+m;i=i+2){

ans[j--]=stu[i].name;

}

//右边一列

j=m/2+1;

for(int i=t+2;i<t+m;i=i+2){

ans[j++]=stu[i].name;

}

cout<<ans[0];

for(int i=1;i<m;i++){

cout<<" "<<ans[i];

}

cout<<endl;

t=t+m;//移动到下一批学生

row--;

}

return 0;

}

相关推荐
郝学胜-神的一滴1 分钟前
ReLU激活函数全解析:从原理到实战,解锁深度学习核心激活单元
人工智能·pytorch·python·深度学习·算法
AGV算法笔记6 分钟前
最新感知算法论文分析:RaCFormer 如何提升雷达相机 3D 目标检测性能?
数码相机·算法·3d·自动驾驶·机器人视觉·3d目标检测·感知算法
脱氧核糖核酸__8 分钟前
LeetCode热题100——54.螺旋矩阵(题解+答案+要点)
c++·算法·leetcode·矩阵
!停10 分钟前
C++入门STL容器string底层剖析
开发语言·c++
lxh011313 分钟前
电话号码的字母组合
java·javascript·算法
爱学习的小可爱卢15 分钟前
算法—Java Map 核心方法与实战场景指南
java·开发语言·算法
WWZZ202516 分钟前
Sim2Sim理论与实践3:深度强化学习
人工智能·算法·机器人·深度强化学习·具身智能·四足·人形
会编程的土豆17 分钟前
【数据结构与算法】栈的应用
数据结构·c++·算法
神仙别闹17 分钟前
基于C++实现的简单的SMTP服务器
服务器·开发语言·c++
菜菜的顾清寒19 分钟前
力扣hot100(17) 缺失的第一个正数
算法·leetcode·职场和发展