結果
| 問題 | No.3390 Public or Private |
| コンテスト | |
| ユーザー |
回転
|
| 提出日時 | 2025-11-28 22:04:41 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 724 ms / 2,000 ms |
| コード長 | 1,071 bytes |
| コンパイル時間 | 273 ms |
| コンパイル使用メモリ | 82,740 KB |
| 実行使用メモリ | 236,228 KB |
| 最終ジャッジ日時 | 2025-11-28 22:05:18 |
| 合計ジャッジ時間 | 17,966 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 27 |
ソースコード
from collections import defaultdict
N,M = list(map(int,input().split()))
edge = defaultdict(set)
edge_rev = defaultdict(set)
for _ in range(M):
u,v = list(map(int,input().split()))
u -= 1;v -= 1
edge[u].add(v)
edge_rev[v].add(u)
status = defaultdict(lambda:True)
kagi_count = 0
kagi = defaultdict(int)
Q = int(input())
for _ in range(Q):
q,a,b = list(map(int,input().split()))
a -= 1;b -= 1
if(q == 1):
if(b in edge[a]):
edge[a].remove(b)
edge_rev[b].remove(a)
if(not status[b]):
kagi[a] -= 1
else:
edge[a].add(b)
edge_rev[b].add(a)
if(not status[b]):
kagi[a] += 1
else:
if(status[a]):
status[a] = False
for i in edge_rev[a]:
kagi[i] += 1
kagi_count += 1
else:
status[a] = True
for i in edge_rev[a]:
kagi[i] -= 1
kagi_count -= 1
print(N - kagi_count + kagi[a] - status[a])
回転