15282112522hhg @ 2024-11-17 10:19:08
#include<bits/stdc++.h>
using namespace std;
int n,c,ku,k,x,y,fx,gz=1;
char dt[1005][100
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>c>>ku>>k;
cin>>x>>y>>fx;
for(int s=1;s<=c;s++)
{
for(int j=1;j<=ku;j++)
{
cin>>dt[s][j];
}
}
while(k)
{
if(fx==0)
{
if(dt[x][y+1]!='x' and y+1<=ku)
{
if(dt[x][y+1]=='.')
{
dt[x][y]='1';
y=y+1;
gz++;
k--;
if(k==0)
{
break;
}
}
else
{
y=y+1;
k--;
if(k==0)
{
break;
}
}
}
else
{
fx=(fx+1)%4;
k--;
if(k==0)
{
break;
}
}
}
if(fx==1)
{
if(dt[x+1][y]!='x' and x+1<=c)
{
if(dt[x+1][y]=='.')
{
dt[x][y]='1';
x=x+1;
gz++;
k--;
if(k==0)
{
break;
}
}
else
{
x=x+1;
k--;
if(k==0)
{
break;
}
}
}
else
{
fx=(fx+1)%4;
k--;
if(k==0)
{
break;
}
}
}
if(fx==2)
{
if(dt[x][y-1]!='x' and y-1>0)
{
if(dt[x][y-1]=='.')
{
dt[x][y]='1';
y=y-1;
gz++;
k--;
if(k==0)
{
break;
}
}
else
{
y=y-1;
k--;
if(k==0)
{
break;
}
}
}
else
{
fx=(fx+1)%4;
k--;
if(k==0)
{
break;
}
}
}
if(fx==3)
{
if(dt[x-1][y]!='x' and x-1>0)
{
if(dt[x-1][y]=='.')
{
dt[x][y]='1';
x=x-1;
gz++;
k--;
if(k==0)
{
break;
}
}
else
{
x=x-1;
k--;
if(k==0)
{
break;
}
}
}
else
{
fx=(fx+1)%4;
k--;
if(k==0)
{
break;
}
}
}
}
cout<<gz<<endl;
gz=1;
}
return 0;
}