1055 集体照

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

struct student{
    string name;
    int height;
};

bool compare(struct student a, struct student b){
    if(a.height != b.height){
        return a.height > b.height;
    }
    else{
        return a.name < b.name;
    }
    
}

int main(){
    int n, k;
    scanf("%d %d", &n, &k);
    vector<struct student> v(n);
    for(int i = 0; i < n; ++i){
        cin >> v[i].name >> v[i].height;
    }
    sort(v.begin(), v.end(), compare);
    int col = n / k; //其他排的人数 
    int final = n / k + (n % k); //最后一排人数
    string result = "";
    for(int i = 0; i < n; ){
        if(i == 0){ //先站最后一排 
            result = v[i].name;
            ++i;
            for(int j = 1; j < final; ++j, ++i){
                if(j % 2 == 1){
                    result = v[i].name + " " + result;
                }
                else{
                    result = result + " " + v[i].name;
                }
            }
            cout << result << endl;
        }
        else{
            result = v[i].name;
            ++i;
            for(int j = 1; j < col; ++j, ++i){
                if(j % 2 == 1){
                    result = v[i].name + " " + result;
                }
                else{
                    result = result + " " + v[i].name;
                }
            }
            cout << result << endl;
        }
    } 
}


 
 

vector 自增长

猜你喜欢

转载自blog.csdn.net/pihe7623/article/details/80206365
今日推荐