結果
| 問題 |
No.179 塗り分け
|
| コンテスト | |
| ユーザー |
PicklesSuperior
|
| 提出日時 | 2019-02-20 02:51:12 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 263 ms / 3,000 ms |
| コード長 | 2,001 bytes |
| コンパイル時間 | 985 ms |
| コンパイル使用メモリ | 72,296 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-07-23 14:55:26 |
| 合計ジャッジ時間 | 5,164 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 6 |
| other | AC * 40 |
ソースコード
#include<iostream>
#include<vector>
#include<string>
#include<string.h>
using namespace std;
int main(){
int H,W;
cin >> H;
cin >> W;
bool flag;
bool nothing=true;
string row;
vector< vector<string> > map; //original
vector< vector<string> > map_prac; //copy
map.resize(H);
map_prac.resize(H);
for(int i=0;i<H;i++){
map[i].resize(W);
map_prac[i].resize(W);
}
for(int i=0;i<H;i++){
cin >> row;
for(int j=0;j<W;j++){
map[i][j]=row[j];
}
}
for(int i=-H+1;i<H;i++){
for(int j=-W+1;j<W;j++){//moving valiation 2499 ways
if(i==0&&j==0)continue; //skip (0,0) move
//cout << "moving [" << i << "]&[" << j << "]" << endl;
map_prac = map;
flag=true;
for(int k=0;k<H;k++){
for(int l=0;l<W;l++){
if(map_prac[k][l].compare(".")==0){ // "." found!
}else{ // "#" found!
nothing=false;
if((0<=(k+i)) && ((k+i)<H) && (0<=(l+j)) && ((l+j)<W)){ // check sticking out
if(map_prac[k+i][l+j].compare("#")==0){
map_prac[k+i][l+j]=".";
}else{
//cout << "false[" << i << "]&[" << j << "]" << endl;
flag=false;
break;
}
}else{
flag=false;
break;
}
}
}
if(!flag)break;// if flag is false ,finalize one moving validation
}
if(flag)break;
}
if(flag)break;
}
if(nothing) {
cout << "NO" << endl;
}else if(flag) {
cout << "YES" << endl;
}else{
cout << "NO" << endl;
}
return 0;
}
PicklesSuperior