很容易算得出來,一個總長度為項的數列 $S$,其連續和(CS)共有 $\displaystyle \frac{n(n+1)}{2}$ 個。 注意,問題來囉!
請問,這 $\displaystyle \frac{n(n+1)}{2}$ 個連續和(CS)之中,第 $k$ 大的是多少?
輸入檔可能包含多筆測試資料。每筆測試資料佔兩列,第一列有兩個正整數 $n,k$($1\leq n\leq 20000, 1\leq k\leq \displaystyle \frac{n(n+1)}{2}$)。第二列總共有 $n$ 個以空白隔開的整數,代表數列 $S$,所有項的絕對值都不超過 $10000$。當$n=k=0$ 時代表輸入結束,請不要對它做任何處理。
對於輸入的每一筆測試資料,請輸出第 $k$ 大的連續和。
前三筆測試資料中,所有的連續和列在下表:
1 2 3 4 5
3 5 7 9
6 9 12
10 14
15
於是可得最大之連續和為15,第15大之連續和為1。
※本題徵求比參考答案更好的解答XD!
※2008/02/25題目敘述修正:感謝Tommy!
※2008/02/26輸入敘述修正:感謝csftwpt!
原TIOJ1208 / TIOJ 2008例行賽02-Elite (prob J)。Idea:kelvin。Problem Setter:Tmt。
No. | Testdata Range | Score |
---|---|---|
1 | 0 | 33 |
2 | 1 | 33 |
3 | 2 | 34 |