結果
問題 |
No.3129 Multiple of Twin Subarray
|
ユーザー |
![]() |
提出日時 | 2025-04-25 22:26:41 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 323 ms / 2,000 ms |
コード長 | 814 bytes |
コンパイル時間 | 202 ms |
コンパイル使用メモリ | 82,552 KB |
実行使用メモリ | 176,904 KB |
最終ジャッジ日時 | 2025-04-25 22:26:55 |
合計ジャッジ時間 | 11,614 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 46 |
ソースコード
n=int(input()) a=list(map(int,input().split())) ans=-10**20 for f1 in [0,1]: for f2 in [0,1]: ca=a+[0] for i in range(n): ca[i]+=ca[i-1] q=[0]*n l=0 for i in range(n): q[i]=ca[i]-l l=min(l,ca[i]) if f1 else max(l,ca[i]) ql=q[:] ca=a[::-1]+[0] for i in range(n): ca[i]+=ca[i-1] q=[0]*n l=0 for i in range(n): q[i]=ca[i]-l l=min(l,ca[i]) if f2 else max(l,ca[i]) qr=q[:] qr=qr[::-1] for f3 in [0,1]: for f4 in [0,1]: cl=ql[:] for i in range(1,n): cl[i]=min(cl[i],cl[i-1]) if f3 else max(cl[i],cl[i-1]) cr=qr[:] for i in range(n-1): cr[i]=min(cr[i],cr[i+1]) if f4 else max(cr[i],cr[i+1]) for i in range(n-1): ans=max(ans,cl[i]*cr[i+1]) print(ans)