#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
struct node
{
string name;
int height;
int x;
int y;
} ST[10010];
bool cmp(struct node a,struct node b)
{
if(a.height==b.height)
return a.name<b.name;
else
return a.height>b.height;
}
bool cmp1(struct node a,struct node b)
{
if(a.x==b.x)
return a.y<b.y;
else
return a.x<b.x;
}
int main()
{
int n,k;
cin>>n>>k;
for(int i=0;i<n;i++)
cin>>ST[i].name>>ST[i].height;
sort(ST,ST+n,cmp);
for(int i=0,j=0;i<n;)
{
int k1=i;
int sum=0;
if(j==0)
sum=n/k+n%k;
else
sum=n/k;
int z1=sum/2-1,z2=sum/2+1;
ST[k1].x=j,ST[k1].y=sum/2;
k1++;
while((k1-i)<sum)
{
if((k1-i)%2==0)
ST[k1].x=j,ST[k1].y=z2++;
else
ST[k1].x=j,ST[k1].y=z1--;
k1++;
}
i+=sum;
j++;
}
sort(ST,ST+n,cmp1);
for(int i=0,z=0;i<n;)
{
int sum=0;
if(z==0)
sum=n/k+n%k;
else
sum=n/k;
for(int j=i;(j-i)<sum;j++)
{
cout<<ST[j].name;
if((j-i)!=sum-1)
cout<<" ";
}
if(z!=(n/k-1))
cout<<endl;
i+=sum;
z++;
}
return 0;
}
PAT乙级 1055.集体照
猜你喜欢
转载自blog.csdn.net/Ls_attack/article/details/79797882
今日推荐
周排行