結果
問題 | No.179 塗り分け |
ユーザー | kohei2019 |
提出日時 | 2021-09-04 00:35:22 |
言語 | C++17(clang) (17.0.6 + boost 1.83.0) |
結果 |
AC
|
実行時間 | 34 ms / 3,000 ms |
コード長 | 3,713 bytes |
コンパイル時間 | 5,664 ms |
コンパイル使用メモリ | 165,372 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-15 20:33:49 |
合計ジャッジ時間 | 4,769 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
5,248 KB |
testcase_01 | AC | 2 ms
5,248 KB |
testcase_02 | AC | 2 ms
5,248 KB |
testcase_03 | AC | 2 ms
5,248 KB |
testcase_04 | AC | 1 ms
5,248 KB |
testcase_05 | AC | 4 ms
5,248 KB |
testcase_06 | AC | 2 ms
5,248 KB |
testcase_07 | AC | 2 ms
5,248 KB |
testcase_08 | AC | 32 ms
5,248 KB |
testcase_09 | AC | 32 ms
5,248 KB |
testcase_10 | AC | 2 ms
5,248 KB |
testcase_11 | AC | 2 ms
5,248 KB |
testcase_12 | AC | 31 ms
5,248 KB |
testcase_13 | AC | 2 ms
5,248 KB |
testcase_14 | AC | 2 ms
5,248 KB |
testcase_15 | AC | 1 ms
5,248 KB |
testcase_16 | AC | 2 ms
5,248 KB |
testcase_17 | AC | 1 ms
5,248 KB |
testcase_18 | AC | 2 ms
5,248 KB |
testcase_19 | AC | 2 ms
5,248 KB |
testcase_20 | AC | 30 ms
5,248 KB |
testcase_21 | AC | 31 ms
5,248 KB |
testcase_22 | AC | 34 ms
5,248 KB |
testcase_23 | AC | 2 ms
5,248 KB |
testcase_24 | AC | 30 ms
5,248 KB |
testcase_25 | AC | 2 ms
5,248 KB |
testcase_26 | AC | 6 ms
5,248 KB |
testcase_27 | AC | 30 ms
5,248 KB |
testcase_28 | AC | 3 ms
5,248 KB |
testcase_29 | AC | 31 ms
5,248 KB |
testcase_30 | AC | 14 ms
5,248 KB |
testcase_31 | AC | 30 ms
5,248 KB |
testcase_32 | AC | 10 ms
5,248 KB |
testcase_33 | AC | 30 ms
5,248 KB |
testcase_34 | AC | 7 ms
5,248 KB |
testcase_35 | AC | 30 ms
5,248 KB |
testcase_36 | AC | 2 ms
5,248 KB |
testcase_37 | AC | 2 ms
5,248 KB |
testcase_38 | AC | 2 ms
5,248 KB |
testcase_39 | AC | 2 ms
5,248 KB |
testcase_40 | AC | 2 ms
5,248 KB |
testcase_41 | AC | 2 ms
5,248 KB |
testcase_42 | AC | 2 ms
5,248 KB |
testcase_43 | AC | 2 ms
5,248 KB |
testcase_44 | AC | 5 ms
5,248 KB |
testcase_45 | AC | 2 ms
5,248 KB |
ソースコード
#include<bits/stdc++.h> using namespace std; using ll = long long; using PAIR = pair<int, int>; using PAIRLL = pair<ll,ll>; using vi = vector<int>; using vll = vector<ll>; using vvi = vector<vi>; using vs = vector<string>; #define rep(i,n) for(int i=0;i<(n);i++) #define INF 100000000 #define REP(i,n) for(ll i=0;i<ll(n);i++) #define REPD(i,n) for(ll i=n-1;i>=0;i--) #define FOR(i,a,b) for(ll i=a;i<=ll(b);i++) #define FORD(i,a,b) for(ll i=a;i>=ll(b);i--) #define FORA(i,I) for(const auto& i:I) //x:コンテナ #define ALL(x) x.begin(),x.end() #define SIZE(x) ll(x.size()) //定数 #define INF32 2147483647 //2.147483647×10^{9}:32bit整数のinf #define INF64 9223372036854775807 //9.223372036854775807×10^{18}:64bit整数のinf #define MOD 1000000007 //問題による #define F first #define S second //出力(空白区切りで昇順に) #define coutALL(x) for(auto i=x.begin();i!=--x.end();i++)cout<<*i<<" ";cout<<*--x.end()<<endl #define coutALLn(x) for(auto i=x.begin();i!=--x.end();i++)cout<<*i<<endl;cout<<*--x.end()<<endl ll myceil(ll a,ll b){return (a+(b-1))/b;} ll myfloor(ll a,ll b){return a/b;} int vector_finder(std::vector<int> vec, int number) { auto itr = std::find(vec.begin(), vec.end(), number); size_t index = std::distance( vec.begin(), itr ); if (index != vec.size()) { // 発見できたとき return 1; } else { // 発見できなかったとき return 0; } } vector<ll> vector_find_ll(vector<ll> vec,ll num){ int N = vec.size(); vector<ll> match_num; rep(i,N){ if (vec[i] == num){ match_num.push_back(i); } } return match_num; } ll vector_max(vector<ll> vec){ ll ret = -INF64; rep(i,vec.size()){ ret = max(ret,vec[i]); } return ret; } ll vector_min(vector<ll> vec){ ll ret = INF64; rep(i,vec.size()){ ret = min(ret,vec[i]); } return ret; } bool is_ok(vector<string> lsHW,int dx,int dy){ int H,W; vector<string> lsHW2 = lsHW; H = lsHW2.size(); W = lsHW2[0].size(); rep(i,H-dx){ rep(j,W-dy){ if (lsHW2[i][j] == '#'){ lsHW2[i][j] = '.'; if (lsHW2[i+dx][j+dy] == '.'){ return false; } else{ lsHW2[i+dx][j+dy] = '.'; } } } } rep(i,H){ rep(j,W){ if (lsHW2[i][j] == '#'){ return false; } } } return true; } bool is_ok2(vector<string> lsHW,int dx,int dy){ int H,W; vector<string> lsHW2 = lsHW; H = lsHW2.size(); W = lsHW2[0].size(); rep(i,H-dx){ for(int j=dy;j<=W;j++){ if (lsHW2[i][j] == '#'){ lsHW2[i][j] = '.'; if (lsHW2[i+dx][j-dy] == '.'){ return false; } else{ lsHW2[i+dx][j-dy] = '.'; } } } } rep(i,H){ rep(j,W){ if (lsHW2[i][j] == '#'){ return false; } } } return true; } int main(){ int H,W; cin >> H >> W; vector<string> lsHW(H); rep(i,H) cin >>lsHW[i]; vector<pair<int,int>> lsp; int cnt = 0; rep(i,H){ rep(j,W){ if (lsHW[i][j] == '#'){ cnt += 1; } lsp.push_back({i,j}); } } if (cnt == 0){ cout << "NO" << endl; return 0; } for (const auto & p:lsp){ if (is_ok(lsHW,p.first,p.second)|is_ok2(lsHW,p.first,p.second)){ cout << "YES" << endl; return 0; } } cout << "NO" << endl; }