样例没有问题,可以试一下,但全是WA,求大佬改一下
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n,m,k;
cin>>n>>m>>k;
char s[n*m+1];
char st[n*m+1];
int x,y,d;
cin>>x>>y>>d;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>s[m*(i-1)+j-1];
st[m*(i-1)+j-1]=0;
}
}
st[m*(x-1)+y-1]=1;
int cnt=0;
for(int i=0;i<k;i++)
{
switch(d)
{
case 0:
if(y+1<=n&&s[m*(x-1)+y]=='.')
{
y++;
if(st[m*(x-1)+y]==0)
{
st[m*(x-1)+y]=1;
cnt++;
}
break;
}
else
{
d=(d+1)%4;
}
case 1:
if(x+1<=m&&s[m*x+y-1])
{
x++;
if(st[m*x+y-1]==0)
{
st[m*x+y-1]=1;
cnt++;
}
break;
}
else
{
d=(d+1)%4;
}
case 2:
if(y-1>=1&&s[m*(x-1)+y-2])
{
y--;
if(st[m*(x-1)+y-2]==0)
{
st[m*(x-1)+y-2]=1;
cnt++;
}
break;
}
else
{
d=(d+1)%4;
}
case 3:
if(x-1>=1&&s[m*(x-2)+y-1])
{
x--;
if(st[m*(x-2)+y-1]==0)
{
st[m*(x-2)+y-1]=1;
cnt++;
}
break;
}
else
{
d=(d+1)%4;
}
k--;
}
}
cout<<cnt;
return 0;
}