传送门
wyx教我哒哈哈哈哈哈得留下来 他的code真的好简洁清爽
#include<bits/stdc++.h>
using namespace std;
const int MAXN=10010;
struct node{
string s;
int x;
bool operator <(const node&A)const
{
if(x==A.x) return s<A.s;
else return x>A.x;
}
}T[MAXN];
int main()
{
int n,k;
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)
{
cin>>T[i].s>>T[i].x;
}
sort(T+1,T+n+1);
int avg=n/k,last=n/k+n%k,now=1;
int cnt=0;
while(cnt++<k)
{
string res="";
res="";
res=T[now++].s;
for(int i=1;i<(cnt==1?last:avg);i++)
{
if(!(i&1)) res+=(" "+T[now++].s);
else res=T[now++].s+" "+res;
}
cout<<res<<endl;
}
return 0;
}