結果

問題 No.2248 max(C)-min(C)
ユーザー flygon
提出日時 2023-03-17 22:25:03
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 821 bytes
コンパイル時間 279 ms
コンパイル使用メモリ 81,732 KB
実行使用メモリ 205,200 KB
最終ジャッジ日時 2024-09-18 11:33:33
合計ジャッジ時間 17,815 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 50 WA * 1
権限があれば一括ダウンロードができます

ソースコード

diff #

n = int(input())
a = list(map(int,input().split()))
b = list(map(int,input().split()))
c = [(a[i]+b[i])//2 for i in range(n)]

dp = [[[0,0] for i in range(3)] for i in range(n)]

dp[0][0] = [a[0],a[0]]
dp[0][1] = [b[0],b[0]]
dp[0][2] = [c[0],c[0]]

for i in range(1, n):
  ai, bi,ci = a[i],b[i], c[i]
  for jj,j in enumerate([ai,bi,ci]):
    tmp = [10**10, -1, -1 ]
    tmp = min(tmp, [max(dp[i-1][0][0],j) - min(dp[i-1][0][1],j), max(dp[i-1][0][0],j ),min(dp[i-1][0][1],j) ])
    tmp = min(tmp, [max(dp[i-1][1][0],j) - min(dp[i-1][1][1],j), max(dp[i-1][1][0],j ),min(dp[i-1][1][1],j) ])
    tmp = min(tmp, [max(dp[i-1][2][0],j) - min(dp[i-1][2][1],j), max(dp[i-1][2][0],j ),min(dp[i-1][2][1],j) ])
    dp[i][jj] = tmp[1:]

ans = float("inf")
for i in range(3):
  ans = min(dp[-1][i][0] - dp[-1][i][1], ans)

print(ans)

0