#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
//结构体存储每个人的准考证号 德分 才分
struct node {
int num, de, cai;
};
//排序先按照总分降序排序,然后按照德分降序排序,再按照则按准考证号的升序排序
int cmp(struct node a, struct node b) {
if ((a.de + a.cai) != (b.de + b.cai))
return (a.de + a.cai) > (b.de + b.cai);
else if (a.de != b.de)
return a.de > b.de;
else
return a.num < b.num;
}
int main() {
int n, low, high;
scanf("%d %d %d", &n, &low, &high);
vector<node> v[4];
node temp; //结构体变量临时存储每个人的三项信息
int total = n;
for (int i = 0; i < n; i++) {
scanf("%d %d %d", &temp.num, &temp.de, &temp.cai);
if (temp.de < low || temp.cai < low)
total--;
else if (temp.de >= high && temp.cai >= high)
v[0].push_back(temp); //第一类“才德全尽”
else if (temp.de >= high && temp.cai < high)
v[1].push_back(temp); //第二类“德胜才”
else if (temp.de < high && temp.cai < high && temp.de >= temp.cai)
v[2].push_back(temp); //第三类“才德兼亡”
else
v[3].push_back(temp);
}
printf("%d\n", total);
for (int i = 0; i < 4; i++) {
sort(v[i].begin(), v[i].end(), cmp); //排序
for (int j = 0; j < v[i].size(); j++)
printf("%d %d %d\n", v[i][j].num, v[i][j].de, v[i][j].cai);
}
return 0;
}
PAT乙级 1015 德才论 (25分)
最新推荐文章于 2024-05-13 23:40:44 发布