結果
| 問題 |
No.1012 荷物収集
|
| コンテスト | |
| ユーザー |
nehan_der_thal
|
| 提出日時 | 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])
nehan_der_thal