結果
| 問題 |
No.179 塗り分け
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-06-30 10:58:19 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 54 ms / 3,000 ms |
| コード長 | 1,091 bytes |
| コンパイル時間 | 565 ms |
| コンパイル使用メモリ | 64,536 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-07-23 14:43:33 |
| 合計ジャッジ時間 | 2,679 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 6 |
| other | AC * 40 |
ソースコード
#include <iostream>
#include <vector>
#include <string>
using namespace std;
#define REP(i, N) for(int i=0;i<(N);++i)
int H, W;
string S[51];
bool canPaint(int di, int dj) {
vector<vector<bool>> painted(H, vector<bool>(W, false));
bool is_white_board = true;
for (int i = 0; i < H; ++i) {
for (int j = 0; j < W; ++j) {
if (S[i][j] == '.' || painted[i][j]) continue;
if (i+di < 0 || H <= i+di || j+dj < 0 || W <= j+dj) return false;
if (S[i+di][j+dj] == '.' || painted[i+di][j+dj]) return false;
painted[i][j] = true;
painted[i+di][j+dj] = true;
is_white_board = false;
}
}
return !is_white_board;
}
int main() {
cin >> H >> W;
REP(i, H) cin >> S[i];
bool can_paint = false;
for (int i = 0; i < H; ++i) {
for (int j = -W+1; j < W; ++j) {
if (i == 0 && j == 0) continue;
if (canPaint(i, j)) can_paint = true;
}
}
if (can_paint) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
}