#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
const int maxn = 1e4 + 10;
struct peo {
string name;
int h;
bool operator<(const peo&x)const
{
return h == x.h ? name < x.name: h > x.h;
}
}a[maxn];
int n, k, m;
void show(int st, int ed)
{
string row[1000];
int left = 1, right = 1;
for (int i = st; i < ed; i++)
{
if (i == st)row[m / 2 + 1] = a[i].name;
else if ((i-st) % 2 == 1)
{
row[m / 2 + 1 - left] = a[i].name;
left++;
}
else if ((i - st) % 2 == 0)
{
row[m / 2 + 1 + right] = a[i].name;
right++;
}
}
int i = 0;
while (row[i] == "")i++;
for (int j = i; j < i + ed - st; j++)
{
cout << row[j];
if (j != i+ed - st - 1)cout << " ";
}
printf("\n");
}
int main()
{
scanf("%d%d", &n, &k);
m = n / k;
for (int i = 0; i < n; i++)cin >> a[i].name >> a[i].h;
sort(a, a + n);
int lastrow = n%k + n / k;
for (int i = 0; i < k; i++)
{
if (i == 0)
{
show(0, lastrow);
}
else
{
show(lastrow + (i - 1)*m, lastrow + i*m);
}
}
return 0;
}
1109 Group Photo(25 分)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 题目 Given a linked list, reverse the nodes of a linked lis...
- Given a linked list, reverse the nodes of a linked list k...