結果
| 問題 | No.3583 二部マッチング最適化 |
| コンテスト | |
| ユーザー |
kidodesu
|
| 提出日時 | 2026-07-03 23:22:14 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,005 bytes |
| 記録 | |
| コンパイル時間 | 299 ms |
| コンパイル使用メモリ | 85,248 KB |
| 実行使用メモリ | 484,300 KB |
| 最終ジャッジ日時 | 2026-07-03 23:23:23 |
| 合計ジャッジ時間 | 16,199 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 19 TLE * 1 -- * 24 |
ソースコード
from sys import setrecursionlimit as srl
srl(5*10**5)
n, m, l = list(map(int, input().split()))
E = []
from random import randrange as R
for a in list(map(int, input().split())):
E.append((a, R(0, 100), 0))
for a in list(map(int, input().split())):
E.append((a, R(0, 100), 1))
mod = 1077541837
base = 10**4
base_ = pow(base, -1, mod)
E.sort()
inf = 1<<60
D = {}
def main(i, t0, mask, S, k):
if (i, t0, mask, k) in D:
return D[(i, t0, mask, k)]
if k == 0:
return 0
if i == n+m:
return inf
a, _, t1 = E[i]
if not S:
S.append(a)
rep = main(i+1, t1, a, S, k)
elif t0 == t1:
S.append(a)
nmask = (mask * base + a) % mod
rep = main(i+1, t0, nmask, S, k)
else:
b = S[-1]
nmask = (mask - b) * base_ % mod
rep = a-S.pop()
rep += main(i+1, t0, nmask, S, k-1)
rep = min(rep, main(i+1, t1, a, [a], k))
D[(i, t0, mask, k)] = rep
return rep
print(main(0, 0, 0, [], l))
kidodesu