AtCoder Beginner Contest 278の解説記事です。
目次
ABC278 C – FF
問題
解説
フォローしているかを集合で管理する。
解説
\(N\), \(Q\) をint
型として受け取ります。
# 入力
N,Q=map(int,input().split())
フォローしているかを表す集合を用意します。
# フォローの集合
follow=set()
クエリを処理します。
フォローしたときには集合に追加、フォロー解除したときには集合から削除します。
また、互いにフォローしているかは集合に含まれているかを判定します。
# Q 回繰り返す
for _ in range(Q):
T,A,B=map(int,input().split())
# ユーザー A がユーザー B をフォロー
if T==1:
follow.add((A,B))
# ユーザー A がユーザー B をフォロー解除
if T==2:
follow.discard((A,B))
# ユーザー A がユーザー B をフォロー かつユーザー B がユーザー A をフォロー しているか?
if T==3:
if (A,B) in follow and (B,A) in follow:
print("Yes")
else:
print("No")
解答
# 入力
N,Q=map(int,input().split())
# フォローの集合
follow=set()
# Q 回繰り返す
for _ in range(Q):
T,A,B=map(int,input().split())
# ユーザー A がユーザー B をフォロー
if T==1:
follow.add((A,B))
# ユーザー A がユーザー B をフォロー解除
if T==2:
follow.discard((A,B))
# ユーザー A がユーザー B をフォロー かつユーザー B がユーザー A をフォロー しているか?
if T==3:
if (A,B) in follow and (B,A) in follow:
print("Yes")
else:
print("No")