当前位置: 代码迷 >> 综合 >> Protect sheep
  详细解决方案

Protect sheep

热度:27   发布时间:2023-12-06 01:46:03.0

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