結果
| 問題 | No.179 塗り分け |
| コンテスト | |
| ユーザー |
zaki_joho
|
| 提出日時 | 2018-12-23 22:00:47 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 3,258 bytes |
| コンパイル時間 | 1,668 ms |
| コンパイル使用メモリ | 169,060 KB |
| 実行使用メモリ | 13,880 KB |
| 最終ジャッジ日時 | 2024-09-25 10:39:42 |
| 合計ジャッジ時間 | 6,592 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 6 |
| other | AC * 7 WA * 1 TLE * 1 -- * 31 |
ソースコード
#include "bits/stdc++.h"
using namespace std;
using ll = long long;
using ld = long double;
using P = pair<int, int>;
constexpr ld EPS = 1e-12;
constexpr int INF = numeric_limits<int>::max() / 2;
constexpr int MOD = 1e9 + 7;
int main()
{
cin.tie(0);
ios::sync_with_stdio(false);
int H, W;
cin >> H >> W;
vector<string> s(H);
bool check = true;
for (int i = 0; i < H; i++)
{
cin >> s[i];
for (int j = 0; j < W; j++)
if (s[i][j] == '#')
check = false;
}
if (check)
{
cout << "NO" << endl;
return 0;
}
bool f = false;
vector<vector<bool>> used(H, vector<bool>(W, false));
for (int dx = 0; dx < H; dx++)
{
for (int dy = 0; dy < W; dy++)
{
if (dx == 0 && dy == 0)
continue;
for (int i = 0; i < H; i++)
{
for (int j = 0; j < W; j++)
{
if (s[i][j] == '.')
used[i][j] = true;
else
used[i][j] = false;
}
}
for (int i = 0; i < H; i++)
{
for (int j = 0; j < W; j++)
{
if (used[i][j])
continue;
int nx = i + dx, ny = j + dy;
if (nx < 0 || H <= nx || ny < 0 || W <= ny)
continue;
if (used[nx][ny])
continue;
used[i][j] = used[nx][ny] = true;
}
}
bool tmp = true;
for (int i = 0; i < H; i++)
{
for (int j = 0; j < W; j++)
{
if (!used[i][j])
tmp = false;
}
}
if (tmp)
f = true;
}
}
for (int dx = 0; dx < H; dx++)
{
for (int dy = -W + 1; dy >= 0; dy++)
{
if (dx == 0 && dy == 0)
continue;
for (int i = 0; i < H; i++)
{
for (int j = 0; j < W; j++)
{
if (s[i][j] == '.')
used[i][j] = true;
else
used[i][j] = false;
}
}
for (int i = 0; i < H; i++)
{
for (int j = W - 1; j >= 0; j--)
{
if (used[i][j])
continue;
int nx = i + dx, ny = j + dy;
if (nx < 0 || H <= nx || ny < 0 || W <= ny)
continue;
if (used[nx][ny])
continue;
used[i][j] = used[nx][ny] = true;
}
}
bool tmp = true;
for (int i = 0; i < H; i++)
{
for (int j = 0; j < W; j++)
{
if (!used[i][j])
tmp = false;
}
}
if (tmp)
f = true;
}
}
cout << (f ? "YES" : "NO") << endl;
}
zaki_joho