結果
| 問題 |
No.1095 Smallest Kadomatsu Subsequence
|
| コンテスト | |
| ユーザー |
titia
|
| 提出日時 | 2020-06-26 21:51:24 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 802 bytes |
| コンパイル時間 | 143 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 32,768 KB |
| 最終ジャッジ日時 | 2024-07-04 20:42:28 |
| 合計ジャッジ時間 | 8,094 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 19 WA * 11 |
ソースコード
N=int(input())
A=list(map(int,input().split()))
MINL=[]
X=10**9
for a in A:
X=min(a,X)
MINL.append(X)
X=10**9
MINR=[]
for a in A[::-1]:
X=min(a,X)
MINR.append(X)
MINR=MINR[::-1]
ANS=3*10**9
for i in range(1,N-1):
if A[i]>MINL[i-1] and A[i]>MINR[i+1]:
ANS=min(ANS,A[i]+MINL[i-1]+MINR[i+1])
A1=A[0]
for i in range(1,N):
if A[i]<A[i-1]:
A1=A[i]
else:
break
#print(A1,i)
for j in range(i,N-1):
if A[j]>A1 and MINR[j+1]<A[j]:
ANS=min(ANS,A1+A[j]+MINR[j+1])
#print(ANS)
A1=A[-1]
for i in range(N-2,-1,-1):
if A[i]<A[i+1]:
A1=A[i]
else:
break
#print(A1,i)
for j in range(i,0,-1):
if A[j]>A1 and MINL[j-1]<A[j]:
ANS=min(ANS,A1+A[j]+MINL[j-1])
if ANS==3*10**9:
print(-1)
else:
print(ANS)
titia