995
查看原帖
995
1225263
aryan楼主2024/11/8 20:29
#include<iostream>
using namespace std;
int dx[]={1,0,-1,0},dy[]={0,-1,0,1};
char map[1005][1005];
bool vis[1005][1005];
int main(){
	int x,T,y,nx,ny,d,k,cnt,n,m;
	cin>>T;
	while(T--){
		cnt=1;
		for(int i=0;i<1005;i++){
			for(int j=0;j<1005;j++){
				map[i][j]='x';
				vis[i][j]=0;
			}
		}
		cin>>n>>m>>k;
		cin>>x>>y>>d;
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
				cin>>map[i][j];
			}
		}
		while(k--){
			if(map[x+dx[d]][y+dy[d]]=='x'){
				d=d+1%4;continue;
			}
			nx=x+dx[d];
			ny=y+dy[d];
			if(vis[nx][ny]==0)cnt++;
			vis[nx][ny]=1;
			x=nx;y=ny;
		}
		cout<<cnt<<'\n';
	}
	return 0;
}
2024/11/8 20:29
加载中...