結果
問題 | No.2759 Take Pictures, Elements? |
ユーザー |
![]() |
提出日時 | 2024-05-17 21:43:18 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 145 ms / 2,000 ms |
コード長 | 629 bytes |
コンパイル時間 | 293 ms |
コンパイル使用メモリ | 82,504 KB |
実行使用メモリ | 84,640 KB |
最終ジャッジ日時 | 2024-12-20 13:28:08 |
合計ジャッジ時間 | 2,848 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 |
ソースコード
N,Q=map(int,input().split())A=list(map(int,input().split()))B=list(map(int,input().split()))T={}C=set(A)C=list(C)C.sort()for i in range(len(C)):T[C[i]]=iM=len(C)R=[set() for i in range(M)]for i in range(N):R[T[A[i]]].add(i)L=[0]dp=[[10**15]*N for i in range(Q+1)]dp[0][0]=0from bisect import bisect_rightfor i in range(Q):L2=[]for j in range(N):if A[j]==B[i]:L2.append(j)pos=bisect_right(L,j)if pos>0:dp[i+1][j]=min(dp[i][L[pos-1]]+j-L[pos-1],dp[i+1][j])if pos<len(L):dp[i+1][j]=min(dp[i+1][j],dp[i][L[pos]]+L[pos]-j)L=L2[:]print(min(dp[Q]))