結果

問題 No.3390 Public or Private
コンテスト
ユーザー kidodesu
提出日時 2025-11-28 22:00:47
言語 PyPy3
(8.0.0 + ACL)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 283 ms / 2,000 ms
+ 157µs
コード長 700 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 82 ms
コンパイル使用メモリ 64,060 KB
実行使用メモリ 363,412 KB
最終ジャッジ日時 2026-10-27 14:41:24
合計ジャッジ時間 9,979 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge7_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 29
権限があれば一括ダウンロードができます

ソースコード

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