結果

問題 No.3761 Moonlit Battle
コンテスト
ユーザー titia
提出日時 2026-10-09 23:20:10
言語 PyPy3
(7.3.23 + ACL)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
WA  
実行時間 -
コード長 618 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 62 ms
コンパイル使用メモリ 82,212 KB
実行使用メモリ 115,428 KB
最終ジャッジ日時 2026-10-09 23:20:21
合計ジャッジ時間 10,735 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge4_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 45 WA * 2
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import sys
input = sys.stdin.readline

N,D=list(map(int,input().split()))

A=[list(map(int,input().split())) for i in range(N)]

def calc(x):
    score=x
    for a,b in A:
        score+=(max(0,b-x)+D-1)//D*a

    return score
    
def calc2(x):
    score=x
    for a,b in A:
        score+=max(0,b-x)/D*a

    return score
MIN=0
MAX=10**9

while MAX-MIN>200:
    mid1=MIN+(MAX-MIN)//3
    mid2=MIN+(MAX-MIN)//3*2

    m1=calc(mid1)+calc2(mid1)
    m2=calc(mid2)+calc2(mid2)

    if m1>m2:
        MIN=mid1
    else:
        MAX=mid2

ANS=1<<63
for i in range(MIN,MAX+1):
    ANS=min(ANS,calc(i))

print(ANS)
        
0