結果

問題 No.1012 荷物収集
ユーザー aaaaaaaaaa2230
提出日時 2022-03-30 23:53:42
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 875 ms / 2,000 ms
コード長 561 bytes
コンパイル時間 399 ms
コンパイル使用メモリ 82,444 KB
実行使用メモリ 125,312 KB
最終ジャッジ日時 2024-11-15 16:01:45
合計ジャッジ時間 19,141 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 41
権限があれば一括ダウンロードができます

ソースコード

diff #

n,q = map(int,input().split())
XW = [list(map(int,input().split())) for i in range(n)]
X = list(map(int,input().split()))
ans = [0]*q

sx = [[x,i] for i,x in enumerate(X)] + [[x,i+q] for i,(x,_) in enumerate(XW)]
sx.sort()
cum = 0
wsum = 0
last = 0
for x,i in sx:
    cum += (x-last)*wsum
    last = x
    if i < q:
        ans[i] += cum
    else:
        wsum += XW[i-q][1]

cum = 0
wsum = 0
last = 0
for x,i in sx[::-1]:
    cum += (last-x)*wsum
    last = x
    if i < q:
        ans[i] += cum
    else:
        wsum += XW[i-q][1]
for i in ans:
    print(i)
0