wangmingrui123456 @ 2024-10-26 18:19:45
#include<bits/stdc++.h>
using namespace std;
int t,maps[1500][1500],x,y,d,n,m,k;
char a;
int main(){
scanf("%d",&t);
while(t--){
scanf("%d%d%d%d%d%d",&n,&m,&k,&x,&y,&d);
for(int i=1;i<=n;++i){
for(int j=1;j<=m;++j){
cin>>a;
if(a=='.')maps[i][j]=-1;
else maps[i][j]=0;
}
}
maps[x][y]=1;
for(int i=1;i<=k;++i){
switch(d){
case 0:{
if(!maps[x][y+1]){
d=(d+1)%4;
break;
}
++y;
maps[x][y]=1;
break;
}
case 1:{
if(!maps[x+1][y]){
d=(d+1)%4;
break;
}
++x;
maps[x][y]=1;
break;
}
case 2:{
if(!maps[x][y-1]){
d=(d+1)%4;
break;
}
--y;
maps[x][y]=1;
break;
}
case 3:{
if(!maps[x-1][y]){
d=(d+1)%4;
break;
}
--x;
maps[x][y]=1;
break;
}
}
}
int ans=0;
for(int i=1;i<=n;++i){
for(int j=1;j<=m;++j)if(maps[i][j]==1)++ans;
}
printf("%d\n",ans);
}
return 0;
}
//WA 7,8,10
by wangmingrui123456 @ 2024-10-26 18:22:56
已AC,需要memset maps数组