#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
typedef struct{
string name;
int high;
}student;
bool cmp(student a,student b){
if(a.high>b.high)
return 1;
else if(a.high==b.high&&a.name<b.name)
return 1;
return 0;
}
int main(){
int n,k,m,in,w=0;
cin>>n>>k;
student stu[10000];
for(int i=0;i<n;i++){
cin>>stu[i].name>>stu[i].high;
}
sort(stu,stu+n,cmp);
int r=k;
while(r){
int turn=0;
if(r==k)
m=n/k+n%k;
else
m=n/k;
in=m/2;
string a[m];
int left=in,right=in;
int p=0;
while(1){
a[in]=stu[w++].name;
p++;
if(p==m)
break;
if(turn==0){
left--;
in=left;
turn=1;
}
else{
right++;
in=right;
turn=0;
}
}
for(int j=0;j<m;j++){
if(j<m-1)
cout<<a[j]<<" ";
else
cout<<a[j]<<"\n";
}
r--;
}
return 0;
}
1055 集体照(25 分)
最新推荐文章于 2021-03-12 22:11:22 发布