結果
問題 |
No.179 塗り分け
|
ユーザー |
|
提出日時 | 2020-07-16 00:14:57 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 15 ms / 3,000 ms |
コード長 | 1,837 bytes |
コンパイル時間 | 12,203 ms |
コンパイル使用メモリ | 381,276 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-23 15:16:37 |
合計ジャッジ時間 | 13,776 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 6 |
other | AC * 40 |
ソースコード
//TODO fn main() { let mut hw = String::new(); std::io::stdin().read_line(&mut hw).ok(); let hw: Vec<usize> = hw.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let h = hw[0]; let w = hw[1]; let mut mapping: Vec<Vec<char>> = vec![]; for _ in 0..h { let mut s = String::new(); std::io::stdin().read_line(&mut s).ok(); mapping.push(s.trim().chars().collect()); } if 0 == mapping.iter().map(|col| col.iter().filter(|&c| *c == '#').count()).sum::<usize>() { println!("NO"); return; } for i in 0..h { for j in 0..w { if i == 0 && j == 0 { continue; } for direct in vec![-1, 1].iter() { let mut used: Vec<Vec<bool>> = vec![vec![false; w]; h]; let mut flg = true; for k in 0..h { for (l, val) in mapping[k].iter().enumerate() { if *val == '#' { let row: usize = k + i; let col: isize = l as isize + j as isize * direct; if !used[k][l] { if row >= h || col >= w as isize || col < 0isize || mapping[row][col as usize] != '#' { flg = false; break; } else { used[row][col as usize] = true; } } } } if !flg { break; } } if flg { println!("YES"); return; } } } } println!("NO"); }