結果
問題 | No.1375 Divide and Update |
ユーザー | convexineq |
提出日時 | 2021-02-05 22:04:22 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 162 ms / 2,000 ms |
コード長 | 464 bytes |
コンパイル時間 | 331 ms |
コンパイル使用メモリ | 82,288 KB |
実行使用メモリ | 114,304 KB |
最終ジャッジ日時 | 2024-07-02 12:32:03 |
合計ジャッジ時間 | 4,475 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 19 |
ソースコード
n,x,y = map(int,input().split()) *a, = map(int,input().split()) dp1 = [0]*n dp1f = [0]*n dp2 = [0]*(n+1) dp2f = [0]*(n+1) v = 0 for i in range(n): dp1[i] = max(dp1[i-1]+x,v+x) dp1f[i] = max(dp1f[i-1]+a[i], dp1[i]) dp1f[0] = dp1[0] v += a[i] v = 0 for i in range(n)[::-1]: dp2[i] = max(dp2[i+1]+y,v+y) dp2f[i] = max(dp2f[i+1]+a[i], dp2[i]) dp2f[n-1] = dp2[n-1] v += a[i] for m in range(1,n-1): print(dp1f[m-1]+a[m]+dp2f[m+1])