提出 #31642741


ソースコード 拡げる

import sys
from random import randrange
input = sys.stdin.readline
MAX = 10 ** 6

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

# ランダムな整数を割り当てる
table = [[0] * (MAX + 1)] * 3
table[1] = [randrange(1 << 60) for _ in range(MAX + 1)]
table[2] = [randrange(1 << 60) for _ in range(MAX + 1)]

# 線形ふるい
primes = []
min_factor = [0] * (MAX + 1)
for i in range(2, MAX + 1):
    if min_factor[i] == 0:
        primes.append(i)
        min_factor[i] = i
    f = min_factor[i]
    for p in primes:
        j = i * p
        if p > f or j > MAX:
            break
        min_factor[j] = p

# ハッシュを計算
B = [0]
cnt = [0] * (MAX + 1) # 素数の出てきた回数
h = 0

def add(p: int): # 素数を追加
    global h
    h ^= table[cnt[p]][p]
    cnt[p] += 1
    if cnt[p] == 3:
        cnt[p] = 0
    h ^= table[cnt[p]][p]

for a in A:
    while a > 1:
        p = min_factor[a]
        add(p)
        a //= p
    B.append(h)

# クエリを処理
for _ in range(Q):
    L, R = map(int, input().split())
    print("Yes" if B[L - 1] == B[R] else "No")

提出情報

提出日時
問題 G - Cubic?
ユーザ tatyam
言語 PyPy3 (7.3.0)
得点 600
コード長 1110 Byte
結果 AC
実行時間 910 ms
メモリ 235160 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 600 / 600
結果
AC × 1
AC × 70
セット名 テストケース
Sample sample_01.txt
All sample_01.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt, test_56.txt, test_57.txt, test_58.txt, test_59.txt, test_60.txt, test_61.txt, test_62.txt, test_63.txt, test_64.txt, test_65.txt, test_66.txt, test_67.txt, test_68.txt, test_69.txt
ケース名 結果 実行時間 メモリ
sample_01.txt AC 708 ms 231296 KiB
test_01.txt AC 640 ms 231928 KiB
test_02.txt AC 775 ms 227724 KiB
test_03.txt AC 715 ms 233300 KiB
test_04.txt AC 752 ms 226152 KiB
test_05.txt AC 824 ms 227432 KiB
test_06.txt AC 698 ms 233772 KiB
test_07.txt AC 710 ms 233448 KiB
test_08.txt AC 794 ms 229340 KiB
test_09.txt AC 679 ms 232620 KiB
test_10.txt AC 722 ms 228116 KiB
test_11.txt AC 747 ms 232300 KiB
test_12.txt AC 747 ms 235160 KiB
test_13.txt AC 716 ms 226264 KiB
test_14.txt AC 785 ms 229512 KiB
test_15.txt AC 745 ms 232504 KiB
test_16.txt AC 738 ms 226968 KiB
test_17.txt AC 749 ms 228256 KiB
test_18.txt AC 757 ms 231364 KiB
test_19.txt AC 765 ms 226172 KiB
test_20.txt AC 722 ms 226788 KiB
test_21.txt AC 824 ms 228164 KiB
test_22.txt AC 834 ms 229876 KiB
test_23.txt AC 811 ms 229584 KiB
test_24.txt AC 803 ms 229484 KiB
test_25.txt AC 812 ms 230072 KiB
test_26.txt AC 820 ms 229924 KiB
test_27.txt AC 802 ms 229236 KiB
test_28.txt AC 812 ms 229868 KiB
test_29.txt AC 812 ms 230268 KiB
test_30.txt AC 803 ms 230048 KiB
test_31.txt AC 844 ms 228040 KiB
test_32.txt AC 860 ms 230268 KiB
test_33.txt AC 866 ms 229768 KiB
test_34.txt AC 845 ms 227924 KiB
test_35.txt AC 838 ms 229712 KiB
test_36.txt AC 822 ms 229120 KiB
test_37.txt AC 827 ms 228916 KiB
test_38.txt AC 815 ms 229352 KiB
test_39.txt AC 779 ms 229828 KiB
test_40.txt AC 815 ms 229680 KiB
test_41.txt AC 828 ms 229248 KiB
test_42.txt AC 817 ms 229812 KiB
test_43.txt AC 863 ms 229880 KiB
test_44.txt AC 901 ms 228820 KiB
test_45.txt AC 819 ms 228768 KiB
test_46.txt AC 809 ms 228980 KiB
test_47.txt AC 828 ms 230212 KiB
test_48.txt AC 814 ms 227732 KiB
test_49.txt AC 822 ms 229272 KiB
test_50.txt AC 803 ms 229588 KiB
test_51.txt AC 800 ms 229316 KiB
test_52.txt AC 826 ms 229272 KiB
test_53.txt AC 839 ms 230108 KiB
test_54.txt AC 812 ms 227788 KiB
test_55.txt AC 852 ms 229412 KiB
test_56.txt AC 910 ms 229812 KiB
test_57.txt AC 873 ms 229440 KiB
test_58.txt AC 823 ms 229140 KiB
test_59.txt AC 811 ms 229376 KiB
test_60.txt AC 817 ms 228608 KiB
test_61.txt AC 828 ms 230308 KiB
test_62.txt AC 806 ms 228128 KiB
test_63.txt AC 826 ms 229548 KiB
test_64.txt AC 820 ms 228760 KiB
test_65.txt AC 826 ms 229012 KiB
test_66.txt AC 818 ms 230180 KiB
test_67.txt AC 839 ms 229960 KiB
test_68.txt AC 851 ms 228960 KiB
test_69.txt AC 899 ms 229828 KiB