#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
struct people{
char name[15];
int height;
}peo[10010];
bool cmp(people a , people b){
if(a.height!=b.height) return a.height>b.height;
else return strcmp(a.name,b.name)<0;
}
int main(){
int n, i, j, k, row=0, first;
scanf("%d%d",&n,&k);
for(i=0;i<n;i++){
scanf("%s %d", &peo[i].name, &peo[i].height);
}
sort(peo,peo+n,cmp);
row=n/k ; first=n%row+row;//row为每行人数
int cnt=0, index=0, pos, left, right, ans[10010]={0};
pos=left=right=first/2+1;
ans[pos]=index++;cnt++;
while(1){
if(cnt>=first)break;
left--;
ans[left]=index++;cnt++;
if(cnt>=first)break;
right++;
ans[right]=index++;cnt++;
if(cnt>=first)break;
}
for(i=1;i<=first;i++){
printf("%s",peo[ans[i]].name);
if(i<first)printf(" ");
else printf("\n");
}
for(int ii=1;ii<k;ii++){
cnt=0;
pos=left=right=row/2+1;
ans[pos]=index++;cnt++;
while(1){
if(cnt>=row)break;
left--;
ans[left]=index++;cnt++;
if(cnt>=row)break;
right++;
ans[right]=index++;cnt++;
if(cnt>=row)break;
}
for(i=1;i<=row;i++){
printf("%s",peo[ans[i]].name);
if(i<row)printf(" ");
else printf("\n");
}
}
return 0;
}
PAT-A1109
最新推荐文章于 2021-03-14 11:59:53 发布