結果
問題 | No.179 塗り分け |
ユーザー |
|
提出日時 | 2019-01-01 16:53:20 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 264 ms / 3,000 ms |
コード長 | 1,462 bytes |
コンパイル時間 | 795 ms |
コンパイル使用メモリ | 62,380 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-07-23 14:55:01 |
合計ジャッジ時間 | 2,402 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 6 |
other | AC * 40 |
ソースコード
#include <iostream> #include <string> #include <cstdio> #include <vector> typedef long long ll; using namespace std; #define rep(i,b) for(ll i=0;i<(b);++i) #define rep1(i,b) for(ll i=1;i<=(b);++i) #define vec vector #define FOR(I,A,B) for(ll I=(A);I<(B);++I) #define debug(x) cerr << #x << " = " << (x) << " (L" << __LINE__ << ")" << endl; // http://procon-nenuon61.hatenablog.com/entry/2017/03/11/143154 int main() { int H, W; cin >> H >> W; vector<string> mass(H); rep(i, H) cin >> mass[i]; bool isPainted[H][W]; rep(i, H) rep(j, W) isPainted[i][j] = false; bool check = false; FOR(dy, -H, H) { FOR(dx, -W, W) { if (dy == 0 && dx == 0) continue; rep(i, H) rep(j, W) isPainted[i][j] = false; rep(z, (H-1)*W+W) { int y = z/W; int x = z%W; if (mass[y][x] == '#' && isPainted[y][x] == false) { isPainted[y][x] = true; if (y+dy<0 || y+dy>=H || x+dx<0 || x+dx>=W) { check = false; break; } if (mass[y+dy][x+dx]=='#' && isPainted[y+dy][x+dx] == false) { isPainted[y+dy][x+dx] = true; check = true; } else { check = false; break; } } } if (check) { cout << "YES" << endl; return 0; } } } cout << "NO" << endl; }