#include <bits/stdc++.h>
using namespace std;
struct node {
char name[10];
int height;
} stu[10001];
bool cmp(node a,node b)
{
return a.height==b.height?strcmp(a.name,b.name)>0:a.height<b.height;
}
int main(int argc, char **argv)
{node a[11][10001];
int n,k;
cin>>n>>k;
int l=n/k;
int nn=n%k+n/k;
for(int i=0; i<n; i++) {
scanf("%s %d",stu[i].name,&stu[i].height);
}
sort(stu,stu+n,cmp);
int tmp=n-1;
for(int i=0; i<k; i++) {
int len=i==0?nn:l;
int ivl=len/2;
int pt=ivl-1;
int pv=ivl+1;
a[i][ivl]=stu[tmp--];
while((pt>=0||pv<len)&&tmp>=0) {
if(pt>=0)a[i][pt--]=stu[tmp--];
if(tmp<0)break;
if(pv<len)a[i][pv++]=stu[tmp--];
}
}
for(int i=0; i<nn; i++) {
if(i!=0)printf(" ");
printf("%s",a[0][i].name);
}
printf("\n");
for(int i=1; i<k; i++) {
for( int j=0; j<l; j++) {
if(j!=0)printf(" ");
printf("%s",a[i][j].name);
}
printf("\n");
}
return 0;
}
1109
最新推荐文章于 2024-07-24 22:55:56 发布