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;

}

相关推荐
C++ 老炮儿的技术栈1 小时前
volatile使用场景
linux·服务器·c语言·开发语言·c++
hz_zhangrl1 小时前
CCF-GESP 等级考试 2026年3月认证C++一级真题解析
开发语言·c++·gesp·gesp2026年3月·gespc++一级
Liu628882 小时前
C++中的工厂模式高级应用
开发语言·c++·算法
AI科技星2 小时前
全尺度角速度统一:基于 v ≡ c 的纯推导与验证
c语言·开发语言·人工智能·opencv·算法·机器学习·数据挖掘
波特率1152002 小时前
const关键字与函数的重载
开发语言·c++·函数重载
条tiao条3 小时前
KMP 算法详解:告别暴力匹配,让字符串匹配 “永不回头”
开发语言·算法
干啥啥不行,秃头第一名3 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
tobias.b3 小时前
计算机基础知识-数据结构
java·数据结构·考研
zzh940773 小时前
Gemini 3.1 Pro 硬核推理优化剖析:思维织锦、动态计算与国内实测
算法
2301_807367193 小时前
C++中的解释器模式变体
开发语言·c++·算法