結果

問題 No.3322 引っ張りだこ
コンテスト
ユーザー 高橋ゆに
提出日時 2025-04-19 18:17:13
言語 PyPy3
(7.3.15)
結果
RE  
実行時間 -
コード長 627 bytes
コンパイル時間 277 ms
コンパイル使用メモリ 82,144 KB
実行使用メモリ 68,168 KB
最終ジャッジ日時 2025-10-31 20:30:18
合計ジャッジ時間 5,631 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other RE * 43
権限があれば一括ダウンロードができます

ソースコード

diff #

def alien_dp(cost):
    dpa = (0, 0)
    dpb = (-INF, -1)
    for i in range(N):
        ndpa = max((dpa[0] + A[i], dpa[1]), (dpb[0] + A[i] - cost, dpb[1] - 1))
        ndpb = max((dpa[0] + B[i] - cost, dpa[1] - 1), (dpb[0] + B[i], dpb[1]))
        dpa = ndpa
        dpb = ndpb
    score, cnt = max(dpa, dpb)
    cnt =- cnt
    return score, cnt

score, cnt = alien_dp(0)
if cnt <= K:
    print(score)
    exit()
    
ng, ok = 0, 1 << 60
while ok - ng > 1:
    med = (ok + ng) // 2
    score, cnt = alien_dp(med)
    if cnt > K:
        ng = med
    else:
        ok = med
    
score, cnt = alien_dp(ok)
print(score + ok * K)
0