問題一覧 > 通常問題

No.3275 Minesweeper on Graph

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / スペシャルジャッジ問題 (複数の解が存在する可能性があります)
タグ : / 解いたユーザー数 59
作問者 : 👑 loop0919 / テスター : Arleen
ProblemId : 11237 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2025-09-19 22:20:03

問題文

$N$ 頂点 $M$ 辺の単純無向グラフがあり、各頂点には $1$ から $N$ までの番号が振られています。
頂点 $U_k$ と頂点 $V_k$ $(1 \le k \le M)$ を双方向に結ぶ辺が張られています。

あなたは全ての頂点に対し $0$ 個または $1$ 個の地雷を埋めます。
次の条件を満たす地雷の埋め方が存在するか判定し、存在するならばその埋め方を $1$ つ提示してください。

  • 頂点 $i \ (1 \le i \le N)$ について、隣接する頂点に埋められている地雷の個数は $A_i$ 個である。

ここで、頂点 $u$ と頂点 $v$ が隣接するとは、頂点 $u$ と頂点 $v$ を結ぶ辺が存在することを指します。

制約

  • $1 \le N \le 16$
  • $\displaystyle 0 \le M \le \frac{N (N - 1)}{2}$
  • $0 \le A_i \le N - 1$
  • $1 \le U_i, V_i \le N$
  • 与えられるグラフは単純無向グラフである。

入力

入力は次の形式で与えられます。

$N$ $M$
$A_1$ $\ldots$ $A_N$
$U_1$ $V_1$
$\vdots$
$U_M$ $V_M$

出力

条件を満たす地雷の埋め方が存在しない場合、No とのみ出力してください。

条件を満たす地雷の埋め方が存在し、それが頂点 $i \ (1 \le i \le N)$ に $X_i$ 個埋めることであるとします。
その場合、次の形式で出力してください。条件を満たす地雷の置き方が複数存在する場合、どれを提示しても正解と判定されます。

Yes
$X_1$ $\ldots$ $X_N$

サンプル

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

地雷を頂点 $1$ 、頂点 $3$ 、頂点 $5$ に $1$ 個、頂点 $2$ 、頂点 $4$ に $0$ 個埋めると次のように条件を満たします。

  • 頂点 $1$ は頂点 $2$ 、頂点 $3$ 、頂点 $4$ と隣接します。これらの頂点に埋められた地雷の個数の総和は $1$ です。
  • 頂点 $2$ は頂点 $1$ 、頂点 $3$ と隣接します。これらの頂点に埋められた地雷の個数の総和は $2$ です。
  • 頂点 $3$ は頂点 $1$ 、頂点 $2$ 、頂点 $4$ と隣接します。これらの頂点に埋められた地雷の個数の総和は $1$ です。
  • 頂点 $4$ は頂点 $1$ 、頂点 $3$ 、頂点 $5$ と隣接します。これらの頂点に埋められた地雷の個数の総和は $3$ です。
  • 頂点 $5$ は頂点 $4$ と隣接します。この頂点に埋められた地雷の個数の総和は $0$ です。
サンプル2
入力
4 3
1 1 1 0
1 2
2 3
3 1
出力
No

条件を満たす地雷の置き方は存在しません。

サンプル3
入力
6 15
4 4 5 4 4 4
1 2
1 3
1 4
1 5
1 6
2 3
2 4
2 5
2 6
3 4
3 5
3 6
4 5
4 6
5 6
出力
Yes
1 1 0 1 1 1

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