试题 A:组队ios
本题总分:5 分spa
【问题描述】code
做为篮球队教练,你须要从如下名单中选出 1 号位至 5 号位各一名球员,组成球队的首发阵容。blog
每位球员担任 1 号位至 5 号位时的评分以下表所示。请你计算首发阵容 1 号位至 5 号位的评分之和最大多是多少?string
(若是你把以上文字复制到文本文件中,请务必检查复制的内容是否与文 档中的一致。在试题目录下有一个文件 team.txt,内容与上面表格中的相同, 请注意第一列是编号)it
【答案提交】
这是一道结果填空的题,你只须要算出结果后提交便可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将没法得分。
io
答案:490class
思路:第一题嘛,没什么好说的,就是暴力!(粗心的我竟然选了同一我的)stream
参考代码:map
#include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> #include<string> #include<vector> #include<queue> #include<map> #include<set> using namespace std; struct player { int no; int a,b,c,d,e; }team[20]; int main() { FILE *fp=fopen("team.txt","r"); for(int i=0;i<20;i++) fscanf(fp,"%d%d%d%d%d%d",&team[i].no,&team[i].a,&team[i].b,&team[i].c,&team[i].d,&team[i].e); int ans=0; for(int i=0;i<20;i++) { if(!team[i].a) continue; for(int j=0;j<20;j++) { if(j==i||!team[j].b) continue; for(int k=0;k<20;k++) { if(k==j||k==i||!team[k].c) continue; for(int m=0;m<20;m++) { if(m==k||m==j||m==i||!team[m].d) continue; for(int n=0;n<20;n++) { if(n==m||n==k||n==j||n==i||!team[n].e) continue; if(team[i].a+team[j].b+team[k].c+team[m].d+team[n].e>ans) ans=team[i].a+team[j].b+team[k].c+team[m].d+team[n].e; } } } } } printf("%d\n",ans); return 0; }