社区讨论
RE 求救
P1786帮贡排序参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lzjjw6wz
- 此快照首次捕获于
- 2024/08/07 15:51 2 年前
- 此快照最后确认于
- 2024/08/07 16:30 2 年前
它全部输出完后报了个
Received signal 6: Aborted / IOT trap.代码:(全 RE)
CPP#include<bits/stdc++.h>
using namespace std;
map<string, int> m = {
{"Bangzhu", 0},
{"FuBangZhu", 1},
{"HuFa", 2},
{"ZhangLao", 3},
{"TangXhu", 4},
{"JingYing", 5},
{"BangZhong", 6}
};
int n;
struct player{
string name;
string work;
int gong;
int level;
}a[111], b[111];
int cmp1(const player &a, const player &b){
if(a.work == "BangZhu") return 1;
if(b.work == "BangZhu") return 0;
if(a.work == "FuBangZhu") return 1;
if(b.work == "FuBangZhu") return 0;
if(b.gong != a.gong) return b.gong < a.gong;
return b.level < a.level;
}
int index(const player &p){
for(int i = 0; i < n; i++){
if(p.name == a[i].name) return i;
}
return n;
}
int cmp2(const player &a, const player &b){
if(a.work != b.work) return m[a.work] < m[b.work];
if(a.level != b.level) return a.level > b.level;
return index(a) < index(b);
}
void getp(player &p){
cin >> p.name >> p.work >> p.gong >> p.level;
}
void putp(player p){
cout << p.name <<' '<< p.work <<' '<< p.level <<endl;
}
int main(){
cin >> n;
for(int i = 0; i < n; i++) getp(a[i]);
memcpy(b, a, sizeof(a));
stable_sort(a, a + n, cmp1);
for(int i = 0; i < min(1, n); i++) a[i].work = "BangZhu";
for(int i = 1; i < min(3, n); i++) a[i].work = "FuBangZhu";
for(int i = 3; i < min(5, n); i++) a[i].work = "HuFa";
for(int i = 5; i < min(9, n); i++) a[i].work = "ZhangLao";
for(int i = 9; i < min(16, n); i++) a[i].work = "TangZhu";
for(int i = 16; i < min(41, n); i++) a[i].work = "JingYing";
for(int i = 41; i < n; i++) a[i].work = "BangZhong";
stable_sort(a, a + n, cmp2);
for(int i = 0; i < n; i++) putp(a[i]);
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...