前言:
这个题真正让我领会到了库函数的重要性 :在不知道sort函数之前 我用最基础的算法 写了很久 结果还不对 = = 就很头疼 但是我查其他人的解法中 10个有9个用了sort函数 最开始我不知什么鬼原因 不想用这个sort函数解这个题 最终还是折服了 查了sort()的基本用法后 成功解出了此题
先看 一开始的解法: (错误的,若有人能看出哪里错误,欢迎评论区留言)
#include<iostream>
using namespace std;
int arr[50000][4];
int main()
{
int n = 0, min = 0, max = 0;
cin >> n >> min >> max; //人数 最低 优先
int num = 0;
int a1 = 0, a2 = 0, a3 = 0, a4 = 0;
for (int i = 0; i < n; i++)
{
cin >> arr[i][0] >> arr[i][1] >> arr[i][2]; //编号 德 才
if (arr[i][1] < min || arr[i][2] < min)
{
arr[i][3] = 0; //不考虑
num++;
}
if (arr[i][1] >= max && arr[i][2] >= max)
{
arr[i][3] = 1; //德才双全 1
a1++;
}
else if (arr[i][1] >= max && arr[i][2] < max)
{
arr[i][3] = 2; //德到才不到 2
a2++;
}
else if (arr[i][3] != 0 && arr[i][1] < max && arr[i][2] < max && arr[i][1] >= arr[i][2])
{
arr[i][3] = 3; //才德都不行 但是德>=才 3
a3++;
}
else if (arr[i][3] != 0)
{
arr[i][3] = 4; //才德都不行 且德<才 还有 才到德不到 4
a4++;
}
}
cout << n - num << "\n";
// 排序
int t = 1;
int number[5] &#