Protect sheep
题目分析
搜索每只狼所在的位置,将它们用狗围住。
代码
#include<iostream>
using namespace std;
char squ[501][501];
int m,n;
int flag=1;
int dir[4][2]={
{
0,1},{
1,0},{
0,-1},{
-1,0}};
int main()
{
cin>>m>>n;int x,y,ex,ey;for(int i=1;i<=m;i++)for(int j=1;j<=n;j++)cin>>squ[i][j];for(int i=1;i<=m;i++)for(int j=1;j<=n;j++)if(squ[i][j]=='W'){
x=i;y=j;for(int k=0;k<4;k++){
ex=x+dir[k][0];ey=y+dir[k][1];if(ex>=1&&ey>=1&&ex<=m&&ey<=n){
if(squ[ex][ey]=='S'){
flag=0;break;}if(squ[ex][ey]=='.')squ[ex][ey]='D';}}}if(flag==0)cout<<"No";else {
cout<<"Yes"<<endl;for(int i=1;i<=m;i++){
if(i!=1)cout<<endl;for(int j=1;j<=n;j++)cout<<squ[i][j];}}return 0;
}