結果
問題 |
No.3129 Multiple of Twin Subarray
|
ユーザー |
![]() |
提出日時 | 2025-04-25 22:11:20 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 166 ms / 2,000 ms |
コード長 | 568 bytes |
コンパイル時間 | 256 ms |
コンパイル使用メモリ | 82,188 KB |
実行使用メモリ | 127,360 KB |
最終ジャッジ日時 | 2025-04-25 22:11:31 |
合計ジャッジ時間 | 7,181 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 46 |
ソースコード
N = int(input()) A = list(map(int,input().split())) def f(a): S = [0] for i in range(N): S.append(S[-1] + a[i]) left = [(float("inf"),float("-inf"))] MIN,MAX = 0,0 for i in range(1,N+1): min_v = min(left[-1][0],S[i] - MAX) max_v = max(left[-1][1],S[i] - MIN) left.append((min_v,max_v)) MAX = max(MAX,S[i]) MIN = min(MIN,S[i]) return left left = f(A) right = f(A[::-1]) ans = float("-inf") for i in range(1,N): ans = max(ans,left[i][0] * right[N-i][0],left[i][1] * right[N-i][1]) print(ans)