結果
問題 | No.179 塗り分け |
ユーザー |
![]() |
提出日時 | 2019-10-29 14:15:50 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 19 ms / 3,000 ms |
コード長 | 2,860 bytes |
コンパイル時間 | 1,758 ms |
コンパイル使用メモリ | 169,688 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-23 15:02:55 |
合計ジャッジ時間 | 3,060 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 6 |
other | AC * 40 |
ソースコード
#include <bits/stdc++.h> #define rep(i,n) for(int i = 0; i < (n); ++i) #define rrep(i,n) for(int i = 1; i <= (n); ++i) #define drep(i,n) for(int i = (n)-1; i >= 0; --i) #define srep(i,s,t) for (int i = s; i < t; ++i) #define rng(a) a.begin(),a.end() using namespace std; typedef long long int ll; typedef pair<int,int> P; typedef vector<int> vi; typedef vector<vi> vvi; typedef vector<ll> vl; typedef vector<P> vp; #define dame { puts("-1"); return 0;} #define yn {puts("Yes");}else{puts("No");} #define MAX_N 200005 int main() { int h,w; cin >> h >> w; string s[h]; rep(i,h)cin >> s[i]; rep(i,h){ rep(j,w){ if(i==0&&j==0)continue; int a[h][w]; rep(x,h){ rep(y,w){ if(s[x][y] == '.')a[x][y] = 0; else a[x][y] = 1; } } int f = 0; int blank = 0; rep(x,h){ rep(y,w){ if(a[x][y] == 1){ blank = 1; if(x+i>=h || y+j>=w){ f = 1; break; }else{ if(a[x+i][y+j] == 1){ a[x][y] = 2; a[x+i][y+j] = 2; }else{ f = 1; break; } } } } if(f == 1)break; } if(f == 0 && blank){ cout << "YES" << endl; return 0; } } } rep(i,h){ rep(j,w){ if(i==0&&j==0)continue; int a[h][w]; rep(x,h){ rep(y,w){ if(s[x][y] == '.')a[x][y] = 0; else a[x][y] = 1; } } int f = 0; int blank = 0; rep(x,h){ rep(y,w){ if(a[x][y] == 1){ blank = 1; if(x+i>=h || y-j<0){ f = 1; break; }else{ if(a[x+i][y-j] == 1){ a[x][y] = 2; a[x+i][y-j] = 2; }else{ f = 1; break; } } } } if(f == 1)break; } if(f == 0 && blank){ cout << "YES" << endl; return 0; } } } cout << "NO" << endl; return 0; }