結果
問題 | No.179 塗り分け |
ユーザー |
![]() |
提出日時 | 2019-08-18 10:06:30 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 104 ms / 3,000 ms |
コード長 | 1,437 bytes |
コンパイル時間 | 1,792 ms |
コンパイル使用メモリ | 173,744 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-23 15:02:22 |
合計ジャッジ時間 | 4,654 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 6 |
other | AC * 40 |
ソースコード
#include <bits/stdc++.h> using namespace std; int main(void) { int H, W; cin >> H >> W; char board[H][W]; for (int i = 0; i < H; i++) { cin >> board[i]; } bool ans = false; for (int dh = -H; dh <= H && !ans; dh++) { for (int dw = -W; dw <= W; dw++) { if (dh == 0 && dw == 0) continue; bool flag = true; int cnt = 0; vector<vector<bool> > checked(H, vector<bool>(W, false)); for (int h = 0; h < H && flag; h++) { for (int w = 0; w < W; w++) { if (board[h][w] == '#' && !checked[h][w]) { cnt++; checked[h][w] = true; int nh = h + dh; int nw = w + dw; if (nh < 0 || nh >= H || nw < 0 || nw >= W) { flag = false; break; } if (board[nh][nw] != '#' || checked[nh][nw]) { flag = false; break; } checked[nh][nw] = true; } } } if (cnt == 0) flag = false; if (flag) { ans = true; break; } } } cout << (ans ? "YES" : "NO") << endl; return 0; }