結果

問題 No.3553 Good Quartet
コンテスト
ユーザー titia
提出日時 2026-06-08 22:33:52
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 914 ms / 2,000 ms
コード長 2,159 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 401 ms
コンパイル使用メモリ 85,376 KB
実行使用メモリ 124,032 KB
最終ジャッジ日時 2026-06-08 22:34:12
合計ジャッジ時間 13,143 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge1_0
純コード判定待ち
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 15
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import sys
input = sys.stdin.readline

A=[1,5,7,11]
B=[1,11,19,29]

N,Q=list(map(int,input().split()))
ANS=set()
S=set(map(int,input().split()))

for s in S:
    if 5*s in S and 7*s in S and 11*s in S:
        ANS.add((s,5*s,7*s,11*s))
    if 11*s in S and 19*s in S and 29*s in S:
        ANS.add((s,11*s,19*s,29*s))

for queries in range(Q):
    #print(ANS)
    t,s=list(map(int,input().split()))

    if t==1:
        S.add(s)
        if 5*s in S and 7*s in S and 11*s in S:
            ANS.add((s,5*s,7*s,11*s))
        if 11*s in S and 19*s in S and 29*s in S:
            ANS.add((s,11*s,19*s,29*s))


        if s%5==0:
            k=s//5
            if k in S and 5*k in S and 7*k in S and 11*k in S:
                ANS.add((k,5*k,7*k,11*k))
        if s%7==0:
            k=s//7
            if k in S and 5*k in S and 7*k in S and 11*k in S:
                ANS.add((k,5*k,7*k,11*k))
        if s%11==0:
            k=s//11
            if k in S and 5*k in S and 7*k in S and 11*k in S:
                ANS.add((k,5*k,7*k,11*k))

        if s%11==0:
            k=s//11
            if k in S and 11*k in S and 19*k in S and 29*k in S:
                ANS.add((k,11*k,19*k,29*k))
        if s%19==0:
            k=s//19
            if k in S and 11*k in S and 19*k in S and 29*k in S:
                ANS.add((k,11*k,19*k,29*k))
        if s%29==0:
            k=s//29
            if k in S and 11*k in S and 19*k in S and 29*k in S:
                ANS.add((k,11*k,19*k,29*k))
         
    else:
        S.remove(s)

        ANS.discard((s,5*s,7*s,11*s))
        ANS.discard((s,11*s,19*s,29*s))

        if s%5==0:
            k=s//5
            ANS.discard((k,5*k,7*k,11*k))
        if s%7==0:
            k=s//7
            ANS.discard((k,5*k,7*k,11*k))
        if s%11==0:
            k=s//11
            ANS.discard((k,5*k,7*k,11*k))

        if s%11==0:
            k=s//11
            ANS.discard((k,11*k,19*k,29*k))
        if s%19==0:
            k=s//19
            ANS.discard((k,11*k,19*k,29*k))
        if s%29==0:
            k=s//29
            ANS.discard((k,11*k,19*k,29*k))

    print(len(ANS))
            
        

            
0