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