第十屆藍橋杯省賽C++B組 組隊

試題 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;
}
相關文章
相關標籤/搜索