#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
using namespace std;
int n, k, row, rear, idx = 0;
struct Student {
string name;
int height;
}s[10010];
vector<Student>r;
bool cmp(const Student a, const Student b) {
if (a.height == b.height)
return a.name < b.name;
return a.height > b.height;
}
void make(int x) {
int flag = 1, p = x / 2;
r.resize(x);
for (int i = 0; i < x; i++) {
if (i == 0) {
r[p] = s[idx];
idx++;
continue;
}
if (flag) {
p -= i;
r[p] = s[idx];
flag = 0;
}
else {
p += i;
r[p] = s[idx];
flag = 1;
}
idx++;
}
}
void show(int x) {
for (int i = 0; i < x; i++) {
cout << r[i].name;
if (i != x - 1)cout << " ";
}
cout << endl;
r.clear();
}
int main() {
cin >> n >> k;
row = n / k;
rear = row + n % k;
for (int i = 0; i < n; i++)
cin >> s[i].name >> s[i].height;
sort(s, s + n, cmp);
make(rear);
show(rear);
for (int i = 0; i < k-1; i++) {
make(row);
show(row);
}
return 0;
}
1109 Group Photo
最新推荐文章于 2024-09-12 19:02:20 发布