問題一覧 > 通常問題

No.3025 Chocol∀te

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 38
作問者 : 👑 potato167 / テスター : noya2
0 ProblemId : 11931 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2025-02-14 15:31:38

ストーリー(読まなくていい)

ここだけの話、となりのクラスでは友チョコを配り合う文化がありました。 ある人は自分の友達全員に同じ数のチョコレートを配ります。

腐れ外道のあなたはバレンタイン当日にクラスの人を $1$ 人選び、チョコレートを全て盗むことにしました。

しかし、バレンタイン前日に魔法少女がクラスに魔法をかけ、友達関係や配るチョコの数を変える計画があることを知りました。 魔法少女は魔法をかけることを正直もうやめたいと思っているので、いつ魔法をやめるかわかりませんでした。

あなたは、魔法少女があるタイミングで魔法をやめたときに、狙った人のチョコレートを盗むと何個のチョコレートを実際に盗めるのかが知りたくなりました。

そこで、友達関係をグラフに置き換えた以下の問題を解くことにしました。

問題文

$N$ 頂点 $M$ 辺の単純無向グラフが与えられます。頂点には $1, 2, \dots , N$ の番号が付けられています。はじめ、$i$ 番目の辺は頂点 $x_{i}$ と頂点 $y_{i}$ を結んでいます。また、長さ $N$ の正整数列 $A = (A_{1}, A_{2}, \dots , A_{N})$ も与えられます。 $Q$ 個のクエリが与えられるので、与えられた順に処理してください。各クエリは以下の $3$ 種類です。

  • 1 u v : 頂点 $u$ と $v$ の間に辺が存在するならその辺を削除し、そうでないなら頂点 $u$ と $v$ の間に辺を追加する。
  • 2 p a : $A$ の $p$ 番目の要素を $a$ に変更する。
  • 3 c : 集合 $S$ を頂点 $c$ と隣接している頂点の番号の集合とする。このとき、$\displaystyle \sum_{i\in S} A_{i}$ を出力する。

制約

  • $2\leq N\leq 10^{5}$
  • $1\leq M \leq \min(10^{5}, \frac{N(N - 1)}{2})$
  • $1\leq x_{i} < y_{i} \leq N$
  • $i \neq j \to (x_{i}, y_{i}) \neq (x_{j}, y_{j})$
  • $1\leq A_{i} \leq 10^{9}$
  • $1\leq Q\leq 10^{5}$
  • $1\leq u < v \leq N$
  • $1\leq p \leq N$
  • $1\leq a \leq 10^{9}$
  • $1\leq c\leq N$
  • 入力は全て整数
  • 出力クエリが少なくとも $1$ つある

入力

入力は以下の形式で標準入力から与えられます。

$N$ $M$
$x_{1}$ $y_{1}$
$x_{2}$ $y_{2}$
$\vdots$
$x_{M}$ $y_{M}$
$A_{1}$ $A_{2}$ $\dots$ $A_{N}$
$Q$
$\text{query}_{1}$
$\text{query}_{2}$
$\vdots$
$\text{query}_{Q}$

各クエリ $\text{query}_{i}$ は以下のいずれかの形式で与えられます。

$1$ $u$ $v$
$2$ $p$ $a$
$3$ $c$

出力

問題文の指示に従って、クエリへの答えを改行区切りで出力してください。

サンプル

サンプル1
入力
6 6
1 2
1 3
1 4
2 4
3 4
5 6
10 100 1000 10000 100000 1000000
10
3 3
2 4 20000
1 1 4
1 4 6
3 1
3 3
3 6
1 1 4
2 2 900
3 1
出力
10010
1100
20010
120000
21900

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