1. 程式人生 > >程式設計團體賽 PAT乙級

程式設計團體賽 PAT乙級

題目描述
1047 程式設計團體賽 (20 分)

程式設計團體賽的規則為:每個參賽隊由若干隊員組成;所有隊員獨立比賽;參賽隊的成績為所有隊員的成績和;成績最高的隊獲勝。

現給定所有隊員的比賽成績,請你編寫程式找出冠軍隊。
輸入格式:

輸入第一行給出一個正整數 N(≤10​4​​),即所有參賽隊員總數。隨後 N 行,每行給出一位隊員的成績,格式為:隊伍編號-隊員編號 成績,其中隊伍編號為 1 到 1000 的正整數,隊員編號為 1 到 10 的正整數,成績為 0 到 100 的整數。
輸出格式:

在一行中輸出冠軍隊的編號和總成績,其間以一個空格分隔。注意:題目保證冠軍隊是唯一的。
輸入樣例:

6
3-10 99
11-5 87
102-1 0
102-3 100
11-9 89
3-2 61

輸出樣例:

11 176

作者: CHEN, Yue
單位: 浙江大學
時間限制: 400 ms
記憶體限制: 64 MB
程式碼長度限制: 16 KB
思路:因為有“-”這個符號,所以我就定義了三個int型別的陣列,分別代表隊伍編號,隊員編號以及對應的成績,還定義了一個char型別的變數方便輸入“-”,於是就有了下邊的程式碼

	int team[n],member[n],score[n];
	char ch;
	int i,j;
	for(i=0;i<n;i++)
	{
		cin>>team[i]>>ch>>member[i]>>score[i];
	}
	int sum,max=0,maxi=0;
	for(i=0;i<n;i++)
	{
		for(j=i+1;j<n;j++)
		{
			sum=0;
			if(team[i]==team[j])
			{
				sum+=(score[i]+score[j]);
				if(sum>max)
				{
					max=sum;
					maxi=team[j];	
				}	
			}	
		}
	}
		cout<<maxi<<" "<<max<<endl;	

但是顯示答案錯誤,我自己感覺沒有問題於是就百度了一下,看到了一遍文章新增連結描述
他是用的C語言,可以直接輸入“-”,C++直接輸入“-”會報錯,emmm他是定義了三個變數分別表示隊伍編號,隊員編號以及對應的成績,定義了一個score陣列來儲存每支隊伍的成績,score的下標表示的是隊伍編號,隊員編號只有輸入,在實際操作中沒有影響。這樣比我之前的那個省空間省時間。