結果

問題 No.1767 BLUE to RED
ユーザー kohei2019
提出日時 2023-06-22 22:56:17
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 292 ms / 2,000 ms
コード長 659 bytes
コンパイル時間 151 ms
コンパイル使用メモリ 82,444 KB
実行使用メモリ 150,348 KB
最終ジャッジ日時 2024-06-30 05:05:18
合計ジャッジ時間 6,829 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 21
権限があれば一括ダウンロードができます

ソースコード

diff #

N,M = map(int,input().split())
lsA = list(map(int,input().split()))
lsB = list(map(int,input().split()))
# Aを0,Bを1とする
lsAB = [(-10**10,0)]
for i in range(N):
    lsAB.append((lsA[i],0))
for i in range(M):
    lsAB.append((lsB[i],1))
lsAB.append((10**10,0))
lsAB.sort()
br = -10**10
ans = 0
ii = 0
while ii <= N+M:
    rs = lsAB[ii][0]
    lsBB = [rs]
    ii += 1
    while lsAB[ii][1]==1:
        lsBB.append(lsAB[ii][0])
        ii += 1
    if len(lsBB)<=1:
        continue
    lsBB.append(lsAB[ii][0])
    sm = lsBB[-1]-lsBB[0]
    maxd = 0
    for i in range(len(lsBB)-1):
        maxd = max(maxd,lsBB[i+1]-lsBB[i])
    ans += sm-maxd
print(ans)
0