結果

問題 No.1767 BLUE to RED
コンテスト
ユーザー ntuda
提出日時 2025-11-06 21:21:26
言語 PyPy3
(7.3.15)
結果
RE  
実行時間 -
コード長 607 bytes
コンパイル時間 3,204 ms
コンパイル使用メモリ 82,324 KB
実行使用メモリ 68,756 KB
最終ジャッジ日時 2025-11-06 21:21:33
合計ジャッジ時間 7,405 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample RE * 3
other RE * 21
権限があれば一括ダウンロードができます

ソースコード

diff #

from heapq import *
from atcoder.dsu import DSU

N, M = map(int, input().split())
A = list(map(int, input().split()))
B = list(map(int, input().split()))
dsu = DSU(N + M + 1)
X = []
for i, a in enumerate(A, start=1):
    X.append((a, i, 0))
    dsu.merge(0, i)
for i, b in enumerate(B, start= N + 1):
    X.append((b, i, 1))
X.sort()
Q = []
for i in range(1, N + M):
    a0, b0, c0 = X[i]
    a1, b1, c1 = X[i - 1]
    if c0 == 1 or c1 == 1:
        heappush(Q, (a0 - a1, b0, b1))
ans = 0
while Q:
    a, b, c = heappop(Q)
    if dsu.same(b, c):
        continue
    ans += a
    dsu.merge(b, c)
print(ans)
0