①考察sort函数结构体排序写法
②要注意列,行标号的变换,好像什么都没考,主要是vector真心好用
#include<bits/stdc++.h>
using namespace std;
int n,row;
struct person{
string name;
int height;
}p[10010];
bool cmp(person a,person b){
if(a.height!=b.height) return a.height>b.height;
else{
return a.name<b.name;
}
}
int main(){
cin>>n>>row;
for(int i=0;i<n;i++){
cin>>p[i].name>>p[i].height;
}
sort(p,p+n,cmp);
int line=n/row,now=0,i=0;
vector<person> v;
int m=n-line*(row-1);
int t=m;
v.push_back(p[i]);
m--;
while(m>0){
v.insert(v.begin(),p[++i]);
m--;
if(m>0){
v.insert(v.end(),p[++i]);
m--;
}
}
for(int k=0;k<v.size();k++){
cout<<v[k].name;
if(k!=v.size()-1)
cout<<" ";
}
cout<<endl;
for(int j=0;j<row-1;j++){
v.clear();
v.push_back(p[t+j*line]);
i=t+j*line+1;;
int temp=line-1;
while(temp>0){
v.insert(v.begin(),p[i++]);
temp--;
if(temp>0){
v.insert(v.end(),p[i++]);
temp--;
}
}
for(int k=0;k<v.size();k++){
cout<<v[k].name;
if(k!=v.size()-1)
cout<<" ";
}
cout<<endl;
}
}