PAT 1055

时间:2020-12-19 04:06:10

题目链接https://www.patest.cn/contests/pat-b-practise/1055

分析:思路很巧妙,感觉很有意义的字符串题目

#include<bits/stdc++.h>

using namespace std;

struct p
{
string name;
int high;
}P[]; bool cmp(p X,p Y)
{
if(X.high==Y.high) return X.name>Y.name;
return X.high<Y.high;
} int main()
{
int n,k,hang;
cin>>n>>k;
for(int i=;i<n;i++)
{
cin>>P[i].name>>P[i].high;
}
sort(P,P+n,cmp);
hang=n/k;
string res="";
for(int i=;i<k;i++)
{
string LL="";
int start=i*hang;
int endd=(i+)*hang-;
if(endd+hang>=n) endd=n-;
LL=P[endd].name;
for(int j=endd-;j>=start;j--)
{
if(j%!=endd%)
LL=P[j].name+" "+LL;
else
LL=LL+" "+P[j].name;
}
res=LL+"\n"+res;
}
cout<<res;
return ;
}