b273: 組合和
Tags : 組合
Accepted rate : 2人/4人 ( 50% ) [非即時]
評分方式:
Tolerant

最近更新 : 2024-07-13 19:04

Content

 現給定一數列,從數列中按連續順序提取任意數量的數字。請編寫一段程序,判斷提取的數字總和等於給定值N。

Input

 第一行為一個正整數T,代表下一行的數列L的項數,第三行則為整數,給定值N。

Output

 輸出只有一行,如提取的數字總和等於N則輸出"YES"(無論有多少個組合等於N),否則則輸出最接近N的值(如有兩個則全部輸出,以升序排序,用空格隔開)。

Sample Input #1
5
9 3 1 2 5
10
Sample Output #1
9 11
Sample Input #2
6
8 -2 10 5 -3 1
12
Sample Output #2
YES
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (10%): 0.1s , <1M
公開 測資點#1 (10%): 0.1s , <1M
公開 測資點#2 (10%): 0.1s , <1M
公開 測資點#3 (10%): 0.1s , <1M
公開 測資點#4 (10%): 0.1s , <1M
公開 測資點#5 (10%): 0.1s , <1M
公開 測資點#6 (10%): 0.1s , <1M
公開 測資點#7 (10%): 0.8s , <1M
公開 測資點#8 (10%): 1.4s , <1M
公開 測資點#9 (10%): 3.0s , <1M
Hint :

範例1說明

由於提取的數字須按連續順序,而唯一組合和等於N的10的"9 1"之間隔了3,因此不能成立。所以輸出最接近10的9和11(3+1+2+5)。

範例2說明

10+5+(-3)剛好等於N(12)。

子任務

測資#1~#2 (20分) 1<=T<=1000

測資#3~#7 (50分) 1000<=T<=10000

測資#8~#10 (30分) 10000<=T<=100000

所有測資:-10^14<=N<=10^14

Tags:
組合
出處:
算法入門C++進階班練習題 [管理者:
1360467-8@g.... (NathanVong)
]


ID User Problem Subject Hit Post Date
沒有發現任何「解題報告」