2015年7月27日 星期一

ITSA 37 Problem 3 最佳排程

題目來源 :http://140.116.249.152/e-Tutor/mod/programming/view.php?id=22215

[Problem 3] 最佳排程

成績: 0 / 倒扣: 0.8
問題描述 :
尾牙到了,因經濟不景氣,許多表演團體紛紛表示有意願前來表演餘興節目,員工希望在節目秀場中看到最多的表演,但受限於尾牙派對時間長度,公司必須決定邀請哪些團體來表演。請為公司寫一個程式讀入公司尾牙派對的時間和所有有意願前來表演的團體所需的表演時間,計算出公司最多可邀請多少團體來表演。例如,若公司派對長度為 200 分鐘,各表演團體所需的時間為 :
27 6 50 21 3 14 16 8 42 33 21 9
則最多可排入 11 個團體表演( 27+6+21+3+14+16+8+42+33+21+9=200 )。
輸入說明 :
第一行為一個正整數 ,代表共有幾家公司。之後接下來有 行,每行第一個為正整數 ( 0 < M < 1000 ),代表該公司的派對時間限制,接下來有數個(不超過 100 個)整數,以 0 結束,代表前來申請的各個表演所需的表演時間。
輸出說明 :
將每個公司最多可邀請的表演團體數目輸出於一行 ,最後必須有換行字元。
範例 :

輸入範例輸出範例
3
200 27 6 50 21 3 14 16 8 42 33 21 9 0
70 20 5 3 6 12 8 4 0
30 13 12 10 5 3 6 15 0
11
7
4


解法 :先將整串數字存入array內,其中array[0]代表總共可表演時間
             再將array[1]~array[i]的數字依小到大排序,並一一用a[0]-a[j],
             若a[0]<a[j]代表時間不夠第j個團體表演 ,則跳出迴圈並輸出答案




沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。