結果

問題 No.1012 荷物収集
ユーザー titiatitia
提出日時 2020-03-21 04:38:35
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 835 ms / 2,000 ms
コード長 658 bytes
コンパイル時間 412 ms
コンパイル使用メモリ 12,672 KB
実行使用メモリ 48,324 KB
最終ジャッジ日時 2024-12-16 10:06:36
合計ジャッジ時間 20,121 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 26 ms
10,880 KB
testcase_01 AC 27 ms
10,752 KB
testcase_02 AC 27 ms
10,752 KB
testcase_03 AC 26 ms
10,880 KB
testcase_04 AC 671 ms
48,296 KB
testcase_05 AC 782 ms
48,296 KB
testcase_06 AC 665 ms
48,292 KB
testcase_07 AC 661 ms
48,324 KB
testcase_08 AC 672 ms
48,196 KB
testcase_09 AC 661 ms
48,172 KB
testcase_10 AC 668 ms
48,272 KB
testcase_11 AC 676 ms
48,196 KB
testcase_12 AC 663 ms
48,324 KB
testcase_13 AC 673 ms
48,324 KB
testcase_14 AC 26 ms
10,752 KB
testcase_15 AC 28 ms
11,008 KB
testcase_16 AC 27 ms
10,880 KB
testcase_17 AC 27 ms
10,880 KB
testcase_18 AC 27 ms
10,752 KB
testcase_19 AC 26 ms
10,752 KB
testcase_20 AC 27 ms
10,752 KB
testcase_21 AC 27 ms
10,752 KB
testcase_22 AC 26 ms
10,752 KB
testcase_23 AC 26 ms
10,752 KB
testcase_24 AC 519 ms
30,912 KB
testcase_25 AC 737 ms
40,612 KB
testcase_26 AC 429 ms
35,040 KB
testcase_27 AC 117 ms
16,764 KB
testcase_28 AC 748 ms
43,460 KB
testcase_29 AC 524 ms
42,992 KB
testcase_30 AC 786 ms
46,316 KB
testcase_31 AC 205 ms
18,288 KB
testcase_32 AC 221 ms
19,352 KB
testcase_33 AC 306 ms
20,504 KB
testcase_34 AC 308 ms
21,300 KB
testcase_35 AC 628 ms
39,600 KB
testcase_36 AC 254 ms
20,448 KB
testcase_37 AC 487 ms
39,808 KB
testcase_38 AC 562 ms
33,272 KB
testcase_39 AC 268 ms
23,484 KB
testcase_40 AC 287 ms
22,636 KB
testcase_41 AC 835 ms
46,172 KB
testcase_42 AC 360 ms
25,336 KB
testcase_43 AC 528 ms
35,640 KB
testcase_44 AC 26 ms
10,624 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

N,Q=map(int,input().split())
B=[tuple(map(int,input().split())) for i in range(N)]
X=list(map(int,input().split()))

B.append((0,0))
B.append((1<<30,0))

N+=2

from operator import itemgetter
B.sort(key=itemgetter(0))

LSUM=[0]
for x,w in B:
    LSUM.append(LSUM[-1]+w)

LC=[0]
for i in range(1,N):
    LC.append(LC[-1]+(B[i][0]-B[i-1][0])*LSUM[i])

RSUM=[0]
for x,w in B[::-1]:
    RSUM.append(RSUM[-1]+w)

RC=[0]
for i in range(N-1,0,-1):
    RC.append(RC[-1]+(B[i][0]-B[i-1][0])*RSUM[N-i])

LC.append(0)
RC.append(0)
import bisect

for x in X:
    t=bisect.bisect_left(B,(x,1<<30))
    print(LC[t-1]+LSUM[t]*(x-B[t-1][0])+RC[N-1-t]+RSUM[N-t]*(B[t][0]-x))
0