2019第十届蓝桥杯C/C++ B组省赛 —— 第一题:组队

试题 A:组队

本题总分:5 分

【问题描述】

   作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员,组成球队的首发阵容。

   每位球员担任 1 号位至 5 号位时的评分如下表所示。请你计算首发阵容 1 号位至 5 号位的评分之和最大可能是多少?

在这里插入图片描述

   (如果你把以上文字复制到文本文件中,请务必检查复制的内容是否与文 档中的一致。在试题目录下有一个文件 team.txt,内容与上面表格中的相同, 请注意第一列是编号)

【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

代码

#include <iostream>
#include <cstdio>

using namespace std;
int team[20][6] = {
        {1,  97, 90, 0,  0,  0},
        {2,  92, 85, 96, 0,  0},
        {3,  0,  0,  0,  0,  93},
        {4,  0,  0,  0,  80, 86},
        {5,  89, 83, 97, 0,  0},
        {6,  82, 86, 0,  0,  0},
        {7,  0,  0,  0,  87, 90},
        {8,  0,  97, 96, 0,  0},
        {9,  0,  0,  89, 0,  0},
        {10, 95, 99, 0,  0,  0},
        {11, 0,  0,  96, 97, 0},
        {12, 0,  0,  0,  93, 98},
        {13, 94, 91, 0,  0,  0},
        {14, 0,  83, 87, 0,  0},
        {15, 0,  0,  98, 97, 98},
        {16, 0,  0,  0,  93, 86},
        {17, 98, 83, 99, 98, 81},
        {18, 93, 87, 92, 96, 81},
        {19, 0,  0,  0,  89, 92},
        {20, 0,  99, 96, 95, 81}
};

int main() {
    int ans = 0;
    for (int i = 0; i < 20; ++i) {
        for (int j = 0; j < 20; ++j) {
            if (j != i)
                for (int k = 0; k < 20; ++k) {
                    if (k != j && k != i)
                        for (int l = 0; l < 20; ++l) {
                            if (l != k && l != j && l != i)
                                for (int m = 0; m < 20; ++m) {
                                    if (m != l && m != k && m != j && m != i) {
                                        if (team[i][1] + team[j][2] + team[k][3] + team[l][4] + team[m][5] > ans)
                                            ans = team[i][1] + team[j][2] + team[k][3] + team[l][4] + team[m][5];
                                    }
                                }
                        }
                }
        }
    }
    cout << ans << endl;
    return 0;
}
原文地址:https://www.cnblogs.com/AlexKing007/p/12338442.html