結果
問題 | No.179 塗り分け |
ユーザー | nola_suz |
提出日時 | 2015-04-06 00:54:27 |
言語 | C++11 (gcc 11.4.0) |
結果 |
AC
|
実行時間 | 13 ms / 3,000 ms |
コード長 | 3,629 bytes |
コンパイル時間 | 934 ms |
コンパイル使用メモリ | 94,008 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-23 14:26:10 |
合計ジャッジ時間 | 2,097 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 1 ms
6,816 KB |
testcase_01 | AC | 2 ms
6,944 KB |
testcase_02 | AC | 1 ms
6,940 KB |
testcase_03 | AC | 2 ms
6,940 KB |
testcase_04 | AC | 1 ms
6,944 KB |
testcase_05 | AC | 1 ms
6,940 KB |
testcase_06 | AC | 1 ms
6,944 KB |
testcase_07 | AC | 2 ms
6,944 KB |
testcase_08 | AC | 5 ms
6,944 KB |
testcase_09 | AC | 6 ms
6,944 KB |
testcase_10 | AC | 3 ms
6,940 KB |
testcase_11 | AC | 3 ms
6,940 KB |
testcase_12 | AC | 6 ms
6,944 KB |
testcase_13 | AC | 1 ms
6,940 KB |
testcase_14 | AC | 2 ms
6,944 KB |
testcase_15 | AC | 1 ms
6,940 KB |
testcase_16 | AC | 2 ms
6,940 KB |
testcase_17 | AC | 1 ms
6,944 KB |
testcase_18 | AC | 4 ms
6,944 KB |
testcase_19 | AC | 3 ms
6,940 KB |
testcase_20 | AC | 2 ms
6,940 KB |
testcase_21 | AC | 1 ms
6,944 KB |
testcase_22 | AC | 13 ms
6,940 KB |
testcase_23 | AC | 4 ms
6,940 KB |
testcase_24 | AC | 6 ms
6,940 KB |
testcase_25 | AC | 4 ms
6,940 KB |
testcase_26 | AC | 4 ms
6,944 KB |
testcase_27 | AC | 6 ms
6,944 KB |
testcase_28 | AC | 4 ms
6,944 KB |
testcase_29 | AC | 5 ms
6,940 KB |
testcase_30 | AC | 5 ms
6,940 KB |
testcase_31 | AC | 6 ms
6,940 KB |
testcase_32 | AC | 4 ms
6,944 KB |
testcase_33 | AC | 5 ms
6,940 KB |
testcase_34 | AC | 4 ms
6,940 KB |
testcase_35 | AC | 6 ms
6,940 KB |
testcase_36 | AC | 1 ms
6,940 KB |
testcase_37 | AC | 1 ms
6,940 KB |
testcase_38 | AC | 2 ms
6,940 KB |
testcase_39 | AC | 2 ms
6,944 KB |
testcase_40 | AC | 2 ms
6,940 KB |
testcase_41 | AC | 2 ms
6,944 KB |
testcase_42 | AC | 2 ms
6,944 KB |
testcase_43 | AC | 2 ms
6,940 KB |
testcase_44 | AC | 2 ms
6,944 KB |
testcase_45 | AC | 2 ms
6,940 KB |
コンパイルメッセージ
main.cpp:207:1: warning: ISO C++ forbids declaration of ‘main’ with no type [-Wreturn-type] 207 | main() { | ^~~~
ソースコード
#include <cstdlib> #include <cmath> #include <climits> #include <cfloat> #include <map> #include <set> #include <iostream> #include <string> #include <vector> #include <algorithm> #include <sstream> #include <complex> #include <stack> #include <queue> #include <cstdio> #include <cstring> #include <iterator> #include <bitset> #include <unordered_set> #include <unordered_map> //#include <utility> //#include <memory> //#include <functional> //#include <deque> //#include <cctype> //#include <ctime> //#include <numeric> //#include <list> //#include <iomanip> //#if __cplusplus >= 201103L //#include <array> //#include <tuple> //#include <initializer_list> //#include <forward_list> // //#define cauto const auto& //#else //#endif using namespace std; typedef long long ll; typedef pair<int,int> pii; typedef pair<ll,ll> pll; typedef vector<int> vint; typedef vector<vector<int> > vvint; typedef vector<long long> vll, vLL; typedef vector<vector<long long> > vvll, vvLL; #define VV(T) vector<vector< T > > template <class T> void initvv(vector<vector<T> > &v, int a, int b, const T &t = T()){ v.assign(a, vector<T>(b, t)); } template <class F, class T> void convert(const F &f, T &t){ stringstream ss; ss << f; ss >> t; } #define reep(i,a,b) for(int i=(a);i<(b);++i) #define rep(i,n) reep((i),0,(n)) #define ALL(v) (v).begin(),(v).end() #define PB push_back #define F first #define S second #define mkp make_pair #define RALL(v) (v).rbegin(),(v).rend() // #define DEBUG #ifdef DEBUG #define dump(x) cout << #x << " = " << (x) << endl; #define debug(x) cout << #x << " = " << (x) << " (L" << __LINE__ << ")" << " " << __FILE__ << endl; #else #define dump(x) #define debug(x) #endif #define MOD 1000000007LL #define EPS 1e-8 static const int INF=1<<24; int h,w; vector<string> s; bool check(int a,int b,int c,int d){ if(0<=a&&a<c&&0<=b&&b<d) return true; return false; } bool foo2(int y1,int x1,int y2,int x2){ bool f1=check(y1,x1,h,w); bool f2=check(y2,x2,h,w); if(f1&&!f2){ if(s[y1][x1]=='#'){ return false; } return true; } if(!f1&&f2){ if(s[y2][x2]=='#'){ return false; } return true; } if(!f1&&!f2) return true; if(s[y1][x1]=='#'&&y1==y2&&x1==x2) return false; if(s[y1][x1]=='.'&&s[y2][x2]=='.') return true; if(s[y1][x1]!='#'&&s[y2][x2]=='#') return false; if(s[y1][x1]=='#'&&s[y2][x2]!='#') return false; s[y1][x1]='-'; s[y2][x2]='-'; return true; } // bool foo(int y,int x){ // rep(i,h){ // rep(j,w){ // if(!foo2(i,j,y+i,x+j)){ // if(y==0&&x==3){ // cout<<i<<" "<<j<<endl; // } // return false; // } // } // } // return true; // } bool foo(int yy,int xx,int y,int x,int cnt){ int t=0; rep(i,h){ rep(j,w){ // if(!check(i,j,h,w)) continue; if(s[i][j]=='#'){ if(!check(i-yy+y,j-xx+x,h,w)){ return false; } if(s[i-yy+y][j-xx+x]=='#'){ s[i][j]='-'; s[i-yy+y][j-xx+x]='-'; t++; } else return false; } } } if(t==cnt) return true; return false; } void mainmain(){ // int h,w; cin>>h>>w; vector<string> v(h); rep(i,h) cin>>v[i]; int a=-1,b=-1; rep(i,h){ rep(j,w){ if(v[i][j]=='#'){ a=i; b=j; break; } } if(a!=-1) break; } int su=0; rep(i,h){ rep(j,w){ if(v[i][j]=='#'){ su++; } } } if(su%2){ puts("NO"); return; } su/=2; if(a==-1&&b==-1){ puts("NO"); return; } if(su==0){ puts("NO"); return; } reep(i,-h,h+1){ reep(j,-w,w+1){ if(i==a&&j==b){ continue; } // cout<<i<<" "<<j<<endl; s=v; if(foo(a,b,i,j,su)){ puts("YES"); return; } } } puts("NO"); } main() { mainmain(); }