時間回到學期第三週某天晚上,
剛讀完課程教材的偉杰一邊吃著牛肉麵一邊思考著最大區間和問題:
想著想著他發現:欸不是,今天的牛肉麵也太好吃了吧!?
牛肉麵,看似簡單 但其實要做到好吃是非常複雜的。
粗略分解有湯有麵有肉,不但要面面俱到,並且東鳴西應,好吃的東西全部加起來不一定總是好吃的,
所以隨著其他食材的調整,原先的食材料理過程也得跟著變化,這種調整會使得好吃程度具有倍數效應。
偉杰覺得好吃程度跟最大區間和有異曲同工之妙,於是他就想:
若可選擇至多一段連續區間乘上整數 $x$,使得改變後的 $A$ 最大區間和變得更大,那最大是多少?
例如 $A = (-3, 7, -3, 2, -7), x = -2$
最佳解為將 $[3, 5]$ 中數字乘上 $x$,則 $A' = (-3, 7, 6, -4, 14)$ 的最大區間和為 $23 = \sum\limits_{i=2}^{5} A'_i$
第一列給兩個整數 $N, x$ 表示數列長度及欲乘上的整數 $(1 \le N \le 5\cdot 10^5, \left| x \right| \le 100)$
第二列給 $N$ 個整數 $\{A_i\}_{i=1}^N$ 表示原問題中的數列 $(\left| A_i \right| \le 10^9)$
輸出選擇至多一段連續區間乘上整數 $x$ 後的 $A$ 的最大區間和的最大可能值
CODEFORCES 1155D Beautiful Array
No. | Testdata Range | Score |
---|---|---|
1 | 0~29 | 100 |
No. | Time Limit (ms) | Memory Limit (KiB) | Output Limit (KiB) | Subtasks |
---|---|---|---|---|
0 | 1000 | 131072 | 65536 | |
1 | 1000 | 131072 | 65536 | |
2 | 1000 | 131072 | 65536 | |
3 | 1000 | 131072 | 65536 | |
4 | 1000 | 131072 | 65536 | |
5 | 1000 | 131072 | 65536 | |
6 | 1000 | 131072 | 65536 | |
7 | 1000 | 131072 | 65536 | |
8 | 1000 | 131072 | 65536 | |
9 | 1000 | 131072 | 65536 | |
10 | 1000 | 131072 | 65536 | |
11 | 1000 | 131072 | 65536 | |
12 | 1000 | 131072 | 65536 | |
13 | 1000 | 131072 | 65536 | |
14 | 1000 | 131072 | 65536 | |
15 | 1000 | 131072 | 65536 | |
16 | 1000 | 131072 | 65536 | |
17 | 1000 | 131072 | 65536 | |
18 | 1000 | 131072 | 65536 | |
19 | 1000 | 131072 | 65536 | |
20 | 1000 | 131072 | 65536 | |
21 | 1000 | 131072 | 65536 | |
22 | 1000 | 131072 | 65536 | |
23 | 1000 | 131072 | 65536 | |
24 | 1000 | 131072 | 65536 | |
25 | 1000 | 131072 | 65536 | |
26 | 1000 | 131072 | 65536 | |
27 | 1000 | 131072 | 65536 | |
28 | 1000 | 131072 | 65536 | |
29 | 1000 | 131072 | 65536 |