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;
}