求助,只过了第一个测试点
  • 板块P1786 帮贡排序
  • 楼主XilyFe
  • 当前回复1
  • 已保存回复1
  • 发布时间2021/11/16 21:04
  • 上次更新2023/11/4 00:22:45
查看原帖
求助,只过了第一个测试点
583125
XilyFe楼主2021/11/16 21:04
#include<iostream>
#include<algorithm>
using namespace std;

string position_arr[] = { "BangZhu","FuBangZhu","HuFa","ZhangLao","TangZhu","JingYing","BangZhong" };
struct Person {
    string name,last_position,now_position;
    long long points;
    int level,h;
}Person_arr[150];


int index(string position) {
    return position_arr->find(position);
}

bool cmp1(Person p1,Person p2) {
    if (p1.points == p2.points) { return p1.h < p2.h; }
    return p1.points > p2.points; 
}

bool cmp2(Person p1, Person p2) {
    if (p1.now_position == p2.now_position) {
        if (p1.level == p2.level) { return p1.h < p2.h; }
        return p1.level > p2.level;
    }
    return index(p1.now_position) < index(p2.now_position);
}
void assign(int length) {
    for (int i = 0; i < length; i++) {
        if (i == 0) { Person_arr[i].now_position = position_arr[0]; }
        else if (i == 1 || i == 2) { Person_arr[i].now_position = position_arr[1]; }
        else if (i == 3 || i == 4) { Person_arr[i].now_position = position_arr[2]; }
        else if (i >= 5 && i <= 8) { Person_arr[i].now_position = position_arr[3]; }
        else if (i >= 9 && i <= 15) { Person_arr[i].now_position = position_arr[4]; }
        else if (i >= 16 && i <= 40) { Person_arr[i].now_position = position_arr[5]; }
        else { Person_arr[i].now_position = position_arr[6]; }
    }
}
void display(int length) {
    for (int i = 0; i < length; i++) {
        cout << Person_arr[i].name << " " << Person_arr[i].now_position << " " << Person_arr[i].level  <<endl;
    }
}
int main() {
    int n;
    cin >> n;
    for (int i = 0; i < n; i++) {
        Person p;
        cin >> p.name >> p.last_position;
        cin >> p.points;
        cin >> p.level;
        p.h = i;    
        Person_arr[i] = p;
    }
    sort(Person_arr + 3, Person_arr + n, cmp1);
    assign(n);
    sort(Person_arr + 1, Person_arr + n, cmp2);
    display(n);
    return 0;
}
2021/11/16 21:04
加载中...