D2 - Social Networking Service

2 secs 1024 MB
matcharate12's icon matcharate12

Story

📶

SNSは便利な反面、相手の状況がわからなすぎるので危険がいっぱいです。
情報を広めるのもいいですが、デマ情報もあるしなりすましもあるし...気を付けながら使いましょう!

と言っている間に、また新たなつぶやきをした人が現れたようです。
このつぶやきはデマ情報ではないと確信し、せっかくなのであなたはこのつぶやきを拡散させることにしました。

問題

この世界でのSNSでは、NN 人の人が利用しています。ここで人には 1,2,,N1,2,\dots,N と番号づけられており、人 ii と呼びます。
NN 人の人がそれぞれ個別のアカウントを持っており、好きなときにメッセージを投稿できます。

また人 xx が人 yy を「フォローする」と、人 x,yx,y が互いに友達になり、双方の投稿したメッセージを見ることが可能になります。
当初はまだこのSNSは生まれたてであり、どの人も一人もフォローしていません。

ある時、人 KK

まっちゃラテ氏、5 回目の単独コンテストをMojaCoder上で開催される!!

といった情報をつぶやきました。

この情報を求めてフォローしてきた人がいるようです。この情報を聞いた人は、フォロー関係にある人全員にその情報を伝えていきます。
そして人 KK 以外にも、伝えられた情報を知っている人とフォロー関係にあればその人たちにも情報を伝えられてきます。

厳密には人 pp が情報を知っているとき、フォロー関係にある人 f1,f2,,fnf_1,f_2,\dots,f_n 全員に、人 pp が持っている情報が伝達されていきます。

ここで QQ 個のSNSクエリが与えられます。順に処理してください。j (1jQ)j\ (1\le j\le Q) 個目のクエリの内容は以下のようになります。

  • 1 u v : 人 uu が人 vv がフォローする。すでに人 vv をフォローしているなら何もしない。
  • 2 : 全体の NN 人のうち、情報を持っている人の人数を報告する

入力

入力は以下の形式で与えられる。

NNQQKK
query1\mathrm{query}_1
query2\mathrm{query}_2
\vdots
queryQ\mathrm{query}_Q

queryj\mathrm{query}_j は次のいずれかの形式で与えられる。

11uuvv

22

制約

  • 2N1052\le N\le 10^5
  • 1Q3×1051\le Q\le 3\times 10^5
  • 1KN1\le K\le N
  • 1 u v のクエリにおいて 1u<vN1\le u\lt v\le N
  • 2 のクエリは少なくとも 11 つ以上含まれる
  • すべて整数

出力

2 クエリが与えられる個数 cc として、cc 行出力せよ。k (1kc)k\ (1\le k\le c) 行目には kk 個目の 2 クエリに対する答えを出力せよ。

入出力例

入力例1
4 5 1
1 2 3
1 1 4
2
1 3 4
2
出力例1
2
4
  • 11 個目のクエリでは、人 2,32,3 がフォロー関係となります。

  • 22 個目のクエリでは、人 1,41,4 がフォロー関係となります。人 11 は情報を持っているので、人 44 に伝達されます。

  • 33 個目のクエリに対して、情報を持っている人は人 1,41,422 人です。

  • 44 個目のクエリでは、人 3,43,4 がフォロー関係となります。人 44 は情報を持っているので、人 33 に伝達されます。
    また人 33 が情報を持ったので、人 22 にも伝達されます。

  • 55 個目のクエリに対して、情報を持っている人は人 1,2,3,41,2,3,444 人(全員)です。

入力例2
6 7 1
1 2 4
1 4 6
1 5 6
1 3 5
1 2 3
1 3 4
2
出力例2
1

K(=1)K(=1) 以外、情報を知っている人はいません。

Submit


Go (1.21)