結果
問題 |
No.505 カードの数式2
|
ユーザー |
![]() |
提出日時 | 2024-09-28 19:29:25 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 36 ms / 2,000 ms |
コード長 | 869 bytes |
コンパイル時間 | 526 ms |
コンパイル使用メモリ | 82,296 KB |
実行使用メモリ | 54,224 KB |
最終ジャッジ日時 | 2024-09-28 19:29:46 |
合計ジャッジ時間 | 2,469 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 29 |
ソースコード
n=int(input()) a=list(map(int,input().split())) q1=[a[0]]*4 q2=[a[0]]*4 X=10**20 for v in a[1:]: nq1=[-X]*4 nq2=[X]*4 for i in range(4): if v!=0: nq1[0]=max(nq1[0],q1[i]+v,q2[i]+v) nq1[1]=max(nq1[1],q1[i]-v,q2[i]-v) nq1[2]=max(nq1[2],q1[i]*v,q2[i]*v) nq1[3]=max(nq1[3],(abs(q1[i])//abs(v))*(2*(q1[i]*v>0)-1),(abs(q2[i])//abs(v))*(2*(q2[i]*v>0)-1)) nq2[0]=min(nq2[0],q1[i]+v,q2[i]+v) nq2[1]=min(nq2[1],q1[i]-v,q2[i]-v) nq2[2]=min(nq2[2],q1[i]*v,q2[i]*v) nq2[3]=min(nq2[3],(abs(q1[i])//abs(v))*(2*(q1[i]*v>0)-1),(abs(q2[i])//abs(v))*(2*(q2[i]*v>0)-1)) else: nq1[0]=max(nq1[0],q1[i]+v,q2[i]+v) nq1[1]=max(nq1[1],q1[i]-v,q2[i]-v) nq1[2]=max(nq1[2],q1[i]*v,q2[i]*v) nq1[3]=0 nq2[0]=min(nq2[0],q1[i]+v,q2[i]+v) nq2[1]=min(nq2[1],q1[i]-v,q2[i]-v) nq2[2]=min(nq2[2],q1[i]*v,q2[i]*v) nq2[3]=0 q1=nq1 q2=nq2 print(max(q1))