百貨公司正在舉行消費集點數換獎品的活動,任何參與者皆可以依據消費所收集到的貼紙點數,換得相對應的獎品。根據該活動的活動辦法,我們知道點數越高所能換得的獎品價值越高;但是,每次兌換獎品時,只限使用一張集點卡上所收集到的點數,不能合併多張集點卡的點數使用。
小智目前手上共有 n 張集點卡,為了換取最高價值的獎品,決定尋求科技公司的協助,將這些集點卡上的所有點數合併到單一集點卡上。然而,這家科技公司的服務有兩項規定:
1) 一次只能合併兩張集點卡,
2) 每次進行合併時,需收取和合併後點數相同數目的手續費。
例如,若小智手上有 3 張集點卡,上面的點數分別是 1、3、8。若小智第一次合併點數為 1 和 8 的集點卡,則合併後的新集點卡點數為9,同時必須付 9 元的手續費;接著,小智要合併點數為 3 和 9 的集點卡,合併後的點數為 12,且手續費為 12 元。因此,兩次合併的手續費總和為 9 + 12 = 21 元。但是,若小智第一次合併點數為 1 和 3 的集點卡,則合併後的新集點卡點數為 4,且手續費為 4 元;接著,小智合併點數為 4 和8 的集點卡,合併後的點數為 12,且手續費為 12 元。因此,兩次合併的手續費總和為4 + 12 = 16 元。
小智發現不同的合併順序,並不會影響最後合併完成時集點卡上的總點數,但卻會影響合併所需的手續費。請你幫忙小智計算合併 n 張集點卡的最低手續費。
輸入: 1 3 8
1+3 = 4, 4+8 = 12, 結果為4+12=16。
輸入: 8 3 5 1
1+3=4, 4+5=9, 9+8=17,結果為4+9+17=30。
輸入: 5 7 3
3+5=8, 7+8=15, 結果為8+15=23。
輸入: 0
跳出程式。
每行有n個以空白符號相間隔的正整數,分別代表這n張集點卡所收集到的點數。每張點數為小於或等於1000的正整數;若輸入為0則跳出程式。
1 3 8 8 3 5 1 5 7 3 0
16 30 23
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |