結果

問題 No.3390 Public or Private
コンテスト
ユーザー kidodesu
提出日時 2025-11-28 22:00:47
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 613 ms / 2,000 ms
コード長 700 bytes
コンパイル時間 217 ms
コンパイル使用メモリ 82,316 KB
実行使用メモリ 378,116 KB
最終ジャッジ日時 2025-11-28 22:01:02
合計ジャッジ時間 13,118 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 27
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

n, m = map(int, input().split())
M = [tuple(map(int, input().split())) for _ in range(m)]
q = int(input())
Q = [tuple(map(int, input().split())) for _ in range(q)]
C = set()
for q, a, b in Q:
    C.add(a)
    if q == 1:
        C.add(b)
D = list(C)
N = len(D)
I = {D[i]: i for i in range(N)}
A = [0] * N * N
ans0 = n - N
for u, v in M:
    if u in C and v in C:
        u = I[u]
        v = I[v]
        A[u*N+v] ^= 1

B = [1] * N

for q, a, b in Q:
    if q == 1:
        a, b = I[a], I[b]
        A[a*N+b] ^= 1
    else:
        a = I[a]
        B[a] ^= 1
    ans = ans0
    for i in range(N):
        if i == a:
            continue
        if A[a*N+i] or B[i]:
            ans += 1
    print(ans)
0