#include<bits/stdc++.h>
using namespace std;
struct node{
string name;
int h;
};
bool cmp(struct node a,struct node b)
{
if(a.h!=b.h)
{
return a.h>b.h;
}
else if(a.h==b.h)
{
return a.name<b.name;
}
else return false;
}
int main()
{
int n,k;
scanf("%d%d",&n,&k);
getchar();
vector <node> v;
for(int i=1;i<=n;i++)
{
node t;
getline(cin,t.name,' ');
cin>>t.h;
getchar();
v.push_back(t);
}
sort(v.begin(),v.end(),cmp);
int flag=0;
for(int i=1;i<=k;i++)
{
int num=0;
if(i==1)
{
num=n/k+n%k;
}
else num=n/k;
string s=v[flag].name;
flag++;
for(int j=2;j<=num;j++)
{
if(j%2==0)//偶数 左边
{
//s=v[flag].name.substr(0,v[flag].name.size())+s;
s=v[flag].name+' '+s;
// cout<<s<<endl;
flag++;
}
else
{
// s=s+v[flag].name.substr(0,v[flag].name.size());
// cout<<s<<v[flag].name;
s=s+' '+v[flag].name;
// cout<<s<<endl;
flag++;
}
}
cout<<s<<endl;
}
return 0;
}
一开始忘了吸收输入的\n导致拼接string总是纵行输出