2019年第十届蓝桥杯C/C++ B组省赛题解-试题A——组队
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 98
19 0 0 0 89 92
20 0 99 96 95 81
这一道题目是要选出全部球员中选出五个人,使得1号位到5号位的最大值尽可能大。每一列都求最大值,但人不能一样。毕竟17号选手不能同时上1号位,3号位,4号位。
#include<stdio.h>
int main()
{
FILE *fp;
int a[20][6],s=0;int k,l,m,j,i=0;
fp=fopen("team.txt", "r");
for(;i<20;i++)
for(j=0;j<6;j++)
fscanf(fp,"%d",&a[i][j]);
for(i=0;i<20;i++)
{
for(j=0;j<20;j++)
{
if(i==j) continue;
for(k=0;k<20;k++)
{
if(k==j||k==i) continue;
for(l=0;l<20;l++)
{
if(l==j||l==i||l==k) continue;
for(m=0;m<20;m++)
{
if(m==l||m==k||m==j||m==i) continue;
if(a[i][1]+a[j][2]+a[k][3]+a[l][4]+a[m][5]>s)
{
s=a[i][1]+a[j][2]+a[k][3]+a[l][4]+a[m][5];
}
}
}
}
}
}
printf("%d",s);
return 0;
}