ABC096 C - Grid Repainting 2
ABC096 C - Grid Repainting 2
グリッド問題。
問題は以下。
〜考え方〜
全探索。
'#'の上下左右が全て'.'のところが一つでもあったら"No"。
rep1(i, N)(1から始まるloop)を定義してやるとやりやすいと思ったので、Snippetにも追加した。
コードは以下。
Submission #4230493 - AtCoder Beginner Contest 096
#include <bits/stdc++.h> using namespace std; #define rep(i,N) for(int i=0;i<int(N);++i) #define rep1(i,N) for(int i=1;i<int(N);++i) #define all(a) (a).begin(),(a).end() int main() { int H,W; cin>>H>>W; vector<string> S(H); rep(i,H){ cin>>S[i]; } string ans = "Yes"; rep1(i,H-1)rep1(j,W-1) if(S[i][j] == '#') if(S[i+1][j]!='#'&&S[i][j+1]!='#'&&S[i-1][j]!='#'&&S[i][j-1]!='#') ans = "No"; cout<<ans<<endl; }