結果

問題 No.179 塗り分け
ユーザー なお
提出日時 2015-04-06 00:23:12
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
WA  
実行時間 -
コード長 1,296 bytes
コンパイル時間 1,271 ms
コンパイル使用メモリ 164,652 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-10-02 13:26:04
合計ジャッジ時間 3,537 ms
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 6
other AC * 39 WA * 1
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef vector<int> VI;
typedef vector<VI> VVI;
#define REP(i, n)           for(int(i)=0;(i)<(n);++(i))
#define FOR(i, f, t)        for(int(i)=(f);(i)<(t);(++i))
#define RREP(i, n)          for(int(i)=(n)-1;(i)>=0;--(i))
const int MOD = int(1e9+7);


int main(){
    do { cin.tie(0); ios_base::sync_with_stdio(false); } while(0);
    int H,W;
    cin >> H >> W;

    vector<string> v;
    REP(i,H){
        string s; cin >> s;
        v.push_back(s);
    }
    int t = 0;
    REP(y,H)REP(x,W){
        if(v[y][x] == '#') t++;
    }
    if(t%2){
        cout << "NO" << endl;
        return 0;
    }

    for(int y = -H+1; y < H; y++) for(int x = -W+1; x < W; x++){
        if(y == 0 && x <= 0) continue;
        vector<string> w = v;
        int c = 0;
        REP(y2,H)REP(x2,W){
            int x3 = x2+x, y3 = y2+y;
            if(x3<0||y3<0||x3>=W||y3>=H) continue;
            if(w[y2][x2] == '#' && w[y3][x3] == '#'){
                w[y2][x2] = w[y3][x3] = '$';
                c += 2;
            }
        }
        if(t == c){
            cerr << x << ":" << y << endl;
            cout << "YES" << endl;
            return 0;
        }
    }

    cout << "NO" << endl;
    return 0;
}
0