結果

問題 No.2710 How many more?
ユーザー tipstar0125tipstar0125
提出日時 2024-03-31 14:45:43
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 406 ms / 2,000 ms
コード長 551 bytes
コンパイル時間 336 ms
コンパイル使用メモリ 82,096 KB
実行使用メモリ 109,056 KB
最終ジャッジ日時 2024-09-30 19:54:45
合計ジャッジ時間 6,579 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 38 ms
52,352 KB
testcase_01 AC 37 ms
52,480 KB
testcase_02 AC 346 ms
95,360 KB
testcase_03 AC 260 ms
95,232 KB
testcase_04 AC 234 ms
108,428 KB
testcase_05 AC 190 ms
90,496 KB
testcase_06 AC 217 ms
101,648 KB
testcase_07 AC 194 ms
77,016 KB
testcase_08 AC 172 ms
80,732 KB
testcase_09 AC 302 ms
101,260 KB
testcase_10 AC 222 ms
87,680 KB
testcase_11 AC 287 ms
84,096 KB
testcase_12 AC 371 ms
105,292 KB
testcase_13 AC 397 ms
109,056 KB
testcase_14 AC 384 ms
108,876 KB
testcase_15 AC 391 ms
108,884 KB
testcase_16 AC 406 ms
108,800 KB
testcase_17 AC 399 ms
108,808 KB
testcase_18 AC 38 ms
52,096 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import bisect
N,Q=list(map(int,input().split()))
A=list(map(int,input().split()))

B=A[:]
B=list(set(B))
B.sort()

C=[0 for _ in range(N)]
for (i,a) in enumerate(A):
    idx=bisect.bisect_left(B,a)
    C[i]=idx

cnt=[0 for _ in range(N)]
S=[0 for _ in range(N+1)]
for i in range(N):
    cnt[C[i]]+=1
for i in range(N):
    S[i+1]=S[i]+cnt[i]

# print(*S)

for _ in range(Q):
    x,y=list(map(int,input().split()))
    x-=1
    y-=1
    pos_x=C[x]
    pos_y=C[y]
    # print(pos_x,pos_y)
    if pos_x<=pos_y:print(0)
    else:print(S[pos_x]-S[pos_y+1])
0