問題一覧 > 通常問題

No.3104 Simple Graph Problem

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / スペシャルジャッジ問題 (複数の解が存在する可能性があります)
タグ : / 解いたユーザー数 25
作問者 : shobonvip / テスター : noya2
1 ProblemId : 11875 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2025-04-11 21:21:05

問題文

頂点が $N$ 個、辺が $M$ 本の連結単純無向グラフ $G$ が与えられます。 $G$ の頂点は頂点 $1, 2, \cdots, N$ 、辺は辺 $1, 2, \cdots, M$ と番号付けられています。辺 $i$ は頂点 $U_i$ と頂点 $V_i$ を結ぶ無向辺です。

また、数列 $A = (A_1,A_2, \cdots, A_N)$ があり、最初はすべて $A_i=0$ に初期化されています。

以下の操作を $i=1,2,\cdots, M$ の順に行います。

  • $0$ 以上 $998244353$ 未満の整数 $x_i$ を選び、 $A_{U_i}, A_{V_i}$ の両方に $x_i$ を足す。その後、 $A_{U_i}, A_{V_i}$ をそれぞれ $998244353$ で割った余りに置き換える。

数列 $B = (B_1, B_2, \cdots, B_N)$ が与えられます。操作の結果、数列 $A$ と数列 $B$ が一致するようにすることはできますか?できる場合は、そのような操作を $1$ つ構築してください。

制約

  • 入力はすべて整数
  • $2 \le N \le 10^5$
  • $N-1 \le M \le \min\{10^5, N(N-1)/2\}$
  • $1 \le U_i \lt V_i \le N$ $(1 \le i \le M)$
  • $(U_i, V_i) \ne (U_j, V_j)$ $(i \ne j)$
  • $G$ は連結である。
  • $G$ は単純である。すなわち、多重辺や自己ループを含まない。
  • $0 \le B_i \lt 998244353$ $(1 \le i \le N)$

入力

$N$ $M$
$B_1$ $B_2$ $\cdots$ $B_N$
$U_1$ $V_1$
$U_2$ $V_2$
$\vdots$
$U_M$ $V_M$

出力

操作の結果 $A=B$ とできる場合、そのような操作の 1 つを、各操作で選んだ $x_i$ を用いて次の形式で出力せよ。

$x_1$ $x_2$ $\cdots$ $x_M$

複数の答えがある場合はどれを出力してもよい。

操作の結果 $A=B$ とできない場合は -1 を出力せよ。

サンプル

サンプル1
入力
3 2
2 1 998244352
1 2
2 3
出力
2 998244352

次のようにして条件を達成することができます。

$1$ 回目の操作: $x_1=2$ を選ぶ。操作後は $(A_1, A_2, A_3) = (2, 2, 0)$ となる。

$2$ 回目の操作: $x_2=998244352$ を選ぶ。操作後は $(A_1, A_2, A_3) = (2, 1, 998244352)$ となる。

サンプル2
入力
2 1
998 244
1 2
出力
-1

どのように操作をしても条件を達成できません。

サンプル3
入力
5 10
2 3 4 5 6
1 2
1 3
1 4
1 5
2 3
2 4
2 5
3 4
3 5
4 5
出力
5 998244351 4 998244348 1 998244349 1 0 5 5

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