問題一覧 > 通常問題

No.3390 Public or Private

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 36
作問者 : yu23578 / テスター : GaLLium yt142857 aa36 Germanium32
ProblemId : 12762 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2025-11-28 10:18:48
コンテストの他の問題:

問題文

yu23578君が運営しているSNS「Y23」は現在 $N$ 人の人に利用されていて、それぞれユーザー $1$ からユーザー $N$ までの番号が振られています。

「Y23」のユーザーには公開または非公開のステータスが定まっており、現在すべてのユーザーのステータスは公開です。

また、「Y23」には「フォロー」という機能があります。現在 $M$ 組のフォロー関係があり、ユーザー $u_i$ はユーザー $v_i$ のことをフォローしています。

$Q$ 個の操作及び問題への解答を順に行ってください。そのうち $i$ 回目の操作では $q_i,\ a_i,\ b_i$ が与えられるので、

$q_i=1$ の時、ユーザー $a_i$ がユーザー $b_i$ を
  • フォローしているならば、 ユーザー $b_i$ のフォローを解除する。
  • フォローしていないならば、ユーザー $b_i$ をフォローする。
$q_i=2$ のとき、ユーザー $a_i$ のステータスが
  • 公開ならば、ユーザー $a_i$ のステータスを非公開に変更する。
  • 非公開ならば、ユーザー $a_i$ のステータスを公開に変更する。
操作後、$a_i$ 以外のユーザーの中で「ユーザー $a_i$ にフォローされている」、または「ステータスが公開」のどちらかを満たすユーザーの人数を出力する。

制約

  • $2 \le N \le 10^9$
  • $1 \le M \le \mathrm{min} (\frac{N(N-1)}{2} , 2 \times 10^5)$
  • $1 \le u_i,v_i \le N$
  • $u_i \neq v_i$
  • $i \neq j$ ならば、 $(u_i,v_i) \neq (u_j,v_j)$
  • $1 \le Q \le 3000$
  • $q_i=1$ のとき、 $1 \le a_i,b_i \le N$
  • $q_i=2$ のとき、 $1 \le a_i \le N,\ b_i = -1$
  • $a_i \neq b_i$
  • 入力はすべて整数

入力

$N\ M$
$u_1\ v_1$
$u_2\ v_2$
$\vdots$
$u_M\ v_M$
$Q$
$q_1\ a_1\ b_1$
$q_2\ a_2\ b_2$
$\vdots$
$q_Q\ a_Q\ b_Q$

出力

最後に改行してください。

サンプル

サンプル1
入力
5 2
1 2
1 3
6
1 2 1
2 1 -1
2 4 -1
1 3 4
1 2 1
2 1 -1
出力
4
4
3
3
2
3

説明(長いので折りたたみ) はじめ、ユーザーのフォロー関係は以下の通りです。



$1$ 番目のクエリで、ユーザー $2$ がユーザー $1$ をフォローします。
問題文の条件を満たすのはユーザー $1,3,4,5$ の $4$ 人です。



$2$ 番目のクエリで、ユーザー $1$ のステータスが非公開になります。
問題文の条件を満たすのはユーザー $2,3,4,5$ の $4$ 人です。



$3$ 番目のクエリで、ユーザー $4$ のステータスが非公開になります。
問題文の条件を満たすのはユーザー $2,3,5$ の $3$ 人です。



$4$ 番目のクエリで、ユーザー $3$ がユーザー $4$ をフォローします。
問題文の条件を満たすのはユーザー $2,4,5$ の $3$ 人です。



$5$ 番目のクエリで、ユーザー $2$ がユーザー $1$ のフォローを解除します。
問題文の条件を満たすのはユーザー $3,5$ の $2$ 人です。



$6$ 番目のクエリで、ユーザー $4$ のステータスが公開になります。
問題文の条件を満たすのはユーザー $2,3,5$ の $3$ 人です。

サンプル2
入力
2 1
1 2
2
2 1 -1
2 2 -1
出力
1
0

条件を満たすユーザーがいない場合もあります。

サンプル3
入力
1000000000 9
1 2
12 23
123 235
1234 2357
12345 23578
2345 3578
345 578
45 78
5 8
10
1 3 5
1 89 34
1 314 159
1 44 23
1 1 2
2 1 -1
2 23 -1
2 2357 -1
2 1 -1
2 23578 -1
出力
999999999
999999999
999999999
999999999
999999999
999999999
999999998
999999997
999999997
999999997

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。