【AtCoder】ABC278解説(Python)

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")
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次