90分代码求调,测试点3没过
查看原帖
90分代码求调,测试点3没过
1232552
Servesleep楼主2024/10/30 22:07
#include<bits/stdc++.h>
using namespace std;
int main(){
	long long t;
	cin>>t;
	for(int j=1;j<=t;j++){
		long long n,m,k,x,y,d;
		cin>>n>>m>>k>>x>>y>>d;
		char a[n+1][m+1]={};
		long long b[n+1][m+1]={},c=1;
		for(int i=1;i<=n;i++){
			for(int l=1;l<=m;l++){
				cin>>a[i][l];
			}
		}
		b[x][y]=1;
		while(k>0){
			if(d==0){
				if(a[x][y+1]=='.'&&y+1<=m){
					k--;
					y=y+1;
					if(b[x][y]==0){
						b[x][y]=1;
						c++;
					}
				}else{
					d=(d+1)%4;
					k--;
				}
			}
			if(d==1){
				if(a[x+1][y]=='.'&&x+1<=n){
					k--;
					x=x+1;
					if(b[x][y]==0){
						b[x][y]=1;
						c++;
					}
				}else{
					d=(d+1)%4;
					k--;
				}
			}
			if(d==2){
				if(a[x][y-1]=='.'&&y-1>=0){
					k--;
					y=y-1;
					if(b[x][y]==0){
						b[x][y]=1;
						c++;
					}
				}else{
					d=(d+1)%4;
					k--;
				}
			}
			if(d==3){
				if(a[x-1][y]=='.'&&x-1>=0){
					k--;
					x=x-1;
					if(b[x][y]==0){
						b[x][y]=1;
						c++;
					}
				}else{
					d=(d+1)%4;
					k--;
				}
			}
		}
		cout<<c<<'\n';
	}
	return 0;
}
2024/10/30 22:07
加载中...