結果

問題 No.3275 Minesweeper on Graph
ユーザー urectanc
提出日時 2025-09-19 21:40:15
言語 Rust
(1.83.0 + proconio)
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 679 bytes
コンパイル時間 13,366 ms
コンパイル使用メモリ 398,036 KB
実行使用メモリ 7,716 KB
最終ジャッジ日時 2025-09-19 21:40:41
合計ジャッジ時間 16,420 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 40
権限があれば一括ダウンロードができます

ソースコード

diff #

use proconio::{input, marker::Usize1};

fn main() {
    input! {
        n: usize, m: usize,
        a: [usize; n],
        edges: [(Usize1, Usize1); m]
    }

    let mut graph = vec![vec![]; n];
    for &(u, v) in &edges {
        graph[u].push(v);
        graph[v].push(u);
    }

    let ans = (0..1 << n).find(|&bits| {
        (0..n).all(|v| graph[v].iter().filter(|&u| bits >> u & 1 == 1).count() == a[v])
    });

    if let Some(ans) = ans {
        println!("Yes");
        let ans = (0..n)
            .map(|v| (ans >> v & 1).to_string())
            .collect::<Vec<_>>()
            .join(" ");
        println!("{ans}");
    } else {
        println!("No");
    }
}
0