結果

問題 No.2758 RDQ
ユーザー ともえともえ
提出日時 2024-05-17 22:01:46
言語 PyPy3
(7.3.15)
結果
MLE  
実行時間 -
コード長 844 bytes
コンパイル時間 327 ms
コンパイル使用メモリ 82,516 KB
実行使用メモリ 647,744 KB
最終ジャッジ日時 2024-05-17 22:02:07
合計ジャッジ時間 4,368 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 38 ms
60,748 KB
testcase_01 MLE -
testcase_02 AC 35 ms
53,676 KB
testcase_03 AC 33 ms
53,148 KB
testcase_04 AC 37 ms
53,024 KB
testcase_05 TLE -
testcase_06 TLE -
testcase_07 TLE -
testcase_08 TLE -
testcase_09 TLE -
testcase_10 MLE -
testcase_11 -- -
testcase_12 -- -
testcase_13 -- -
testcase_14 -- -
testcase_15 -- -
testcase_16 -- -
testcase_17 -- -
testcase_18 -- -
testcase_19 -- -
testcase_20 -- -
testcase_21 -- -
testcase_22 -- -
権限があれば一括ダウンロードができます

ソースコード

diff #

def Divisors(n):
    # 約数のリストを返す関数
    divisors = []
    L = n ** 0.5
    for i in range(1, int(L) + 1):
        if n % i == 0:
            divisors.append(i)
            if i != n // i:
                divisors.append(n // i)
    return divisors


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

size = 5 * 10**4
cnt = [{}]
for i, a in enumerate(A):
    res = {}
    for v in Divisors(a):
        res[v] = 1
    cnt.append(res)

for i in range(1, N + 1):
    for k, v in cnt[i-1].items():
        if k in cnt[i]:
            cnt[i][k] += v
        else:
            cnt[i][k] = v

for _ in range(Q):
    l, r, k = map(int, input().split())
    # print(cnt[r-1], k)
    if k in cnt[r]:
        x = cnt[r][k]
        if k in cnt[l-1]:
            x -= cnt[l-1][k]
    else:
        x = 0
    print(x)
0