求助70分
查看原帖
求助70分
991651
wangmingrui123456楼主2024/10/26 18:19
#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
2024/10/26 18:19
加载中...