結果
問題 |
No.1012 荷物収集
|
ユーザー |
![]() |
提出日時 | 2020-03-20 21:50:19 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 444 ms / 2,000 ms |
コード長 | 650 bytes |
コンパイル時間 | 145 ms |
コンパイル使用メモリ | 82,028 KB |
実行使用メモリ | 120,608 KB |
最終ジャッジ日時 | 2024-12-15 05:25:39 |
合計ジャッジ時間 | 10,839 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 41 |
ソースコード
N, Qn = map(int, input().split()) X = [] for _ in range(N): x, w = map(int, input().split()) X.append((x, w, 0)) Q = list(map(int, input().split())) for i, x in enumerate(Q): X.append((x, i, 1)) X.sort(key=lambda x:x[0]) rs1 = [0] * Qn wsum = bx = ss=0 for x, d, t in X: if t: ss += (x-bx)*wsum rs1[d] = ss else: ss += (x-bx)*wsum wsum += d bx = x rs2 = [0] * Qn wsum = bx = ss=0 for x, d, t in X[::-1]: if t: ss += -(x-bx)*wsum rs2[d] = ss else: ss += -(x-bx)*wsum wsum += d bx = x #print(rs1, rs2) for i in range(Qn): print(rs1[i]+rs2[i])