結果

問題 No.2758 RDQ
ユーザー ともえ
提出日時 2024-05-17 22:01:46
言語 PyPy3
(7.3.15)
結果
MLE  
実行時間 -
コード長 844 bytes
コンパイル時間 186 ms
コンパイル使用メモリ 82,272 KB
実行使用メモリ 1,518,432 KB
最終ジャッジ日時 2024-12-20 13:51:21
合計ジャッジ時間 51,531 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2 MLE * 1
other AC * 3 TLE * 6 MLE * 12
権限があれば一括ダウンロードができます

ソースコード

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