觉得没啥问题,但就是错了。。。。。。
代码:
#include <iostream>
#include <algorithm>
#include <string>
#include <cstring>
using namespace std;
int dx[]={1, -1, 0, 0, 1, -1, 1, -1};
int dy[]={0, 0, 1, -1, 1, -1, -1, 1};
const int N=33;
char s[N][N];
int ar[N][N];
int n, m;
int vis[N][N];
int dbfs(int x, int y)
{
int xxx=ar[x][y];
if (xxx==1) return 2;
for (int i=0; i<8; i++)
{
int flag=0;
for (int j=1; j<=5; j++)
{
x+=dx[i], y+=dy[i];
if (x<1 || x>n || y<1 || y>m || vis[x][y] || ar[x][y]!=xxx)
{
flag=1;
break;
}
vis[x][y]=1;
}
if (flag==0)
{
if (xxx==2) return 1;
else return 0;
}
}
return 2;
}
void e_mei ()
{
cin>>n>>m;
int cnt=0;
for (int i=1; i<=n; i++)
for (int j=1; j<=m; j++)
{
cin>>s[i][j];
if (s[i][j]=='~') ar[i][j]=1;
if (s[i][j]=='*')
{
ar[i][j]=2;
cnt++;
}
if (s[i][j]=='$')
{
ar[i][j]=3;
cnt++;
}
}
for (int i=1; i<=n; i++)
{
for (int j=1; j<=m; j++)
{
int a=dbfs(i, j);
if (a==1)
{
cout<<"Pleasing!";
return ;
}
else if (a==0)
{
cout<<"zylwins!";
return ;
}
}
memset (vis, 0, sizeof (vis));
}
if (cnt%2==0) cout<<"W";
else cout<<"Z";
}
int main ()
{
ios::sync_with_stdio(false);
cin. tie (0), cout. tie (0);
e_mei ();
return 0;
}