题目链接:https://www.patest.cn/contests/pat-b-practise/1055
分析:思路很巧妙,感觉很有意义的字符串题目
#include<bits/stdc++.h> using namespace std; struct p { string name; int high; }P[10008]; 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=0;i<n;i++) { cin>>P[i].name>>P[i].high; } sort(P,P+n,cmp); hang=n/k; string res=""; for(int i=0;i<k;i++) { string LL=""; int start=i*hang; int endd=(i+1)*hang-1; if(endd+hang>=n) endd=n-1; LL=P[endd].name; for(int j=endd-1;j>=start;j--) { if(j%2!=endd%2) LL=P[j].name+" "+LL; else LL=LL+" "+P[j].name; } res=LL+" "+res; } cout<<res; return 0; }