結果
| 問題 |
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");
}