题目描述
作为篮球队教练,你需要从以下名单中选出1 号位至5 号位各一名球员,组成球队的首发阵容。
每位球员担任1号位至5号位时的评分如下表所示。请你计算首发阵容1号位至5号位的评分之和最大可能是多少?
解答
#include <iostream>
using namespace std;
int main()
{
// 请在此输入您的代码
int a[5][20]={{97, 92, 0, 0, 89, 82, 0, 0, 0, 95, 0, 0, 94, 0, 0, 0, 98, 93, 0, 0},
{90, 85, 0, 0, 83, 86, 0, 97, 0, 99, 0, 0, 91, 83, 0, 0, 83, 87, 0, 99},
{0, 96, 0, 0, 97, 0, 0, 96, 89, 0, 96, 0, 0, 87, 98, 0, 99, 92, 0, 96},
{0, 0, 0, 80, 0, 0, 87, 0, 0, 0, 97, 93, 0, 0, 97, 93, 98, 96, 89, 95},
{0, 0, 93, 86, 0, 0, 90, 0, 0, 0, 0, 98, 0, 0, 98, 86, 81, 98, 92, 81}};
int maxSum=0;
for(int i=0;i<20;i++){
for(int j=0;j<20;j++){
if(j==i)continue;//限制非同一个球员
for(int k=0;k<20;k++){
if(k==i||k==j) continue;
for(int l=0;l<20;l++){
if(l==i||l==j||l==k)continue;
for(int m=0;m<20;m++){
if(m==i||m==j||m==k||m==l)continue;
if(a[0][i]+a[1][j]+a[2][k]+a[3][l]+a[4][m]>maxSum)
maxSum=a[0][i]+a[1][j]+a[2][k]+a[3][l]+a[4][m];
}
}
}
}
}
cout<<maxSum;
return 0;
}