WA0求助(必关)
查看原帖
WA0求助(必关)
1366699
programmer330楼主2024/10/26 23:00
#include<bits/stdc++.h>
using namespace std;
int t;
int n,m,k,d,xx,yy,dd;
int x,y;
char a[1001][1001];
bool check[1001][1001];
bool again[1001][1001];
int main(){
	cin>>t;
	for(int T=1;T<=t;T++){
		cin>>n>>m>>k>>xx>>yy>>dd;
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++){
				cin>>a[i][j];
				check[i][j]=false;
				again[i][j]=false;
			}
		}
		d=dd;
		x=xx;
		y=yy;
		check[x][y]=true;
		int sum=0;
		for(int i=1;i<=k;i++){
			if(d==0){
				if (a[x][y+1]=='.'&&y+1<=m){
					y+=1;
					if(again[x][y]==true)sum-=1;
					check[x][y]=true;
					again[x][y]=true;
				}else{
					d=(d+1)%4;
				}
			}
			else if(d==1){
				if (a[x+1][y]=='.'&&x+1<=n){
					x+=1;
					if(again[x][y]==true)sum-=1;
					check[x][y]=true;
					again[x][y]=true;
				}else{
					d=(d+1)%4;
				}
			}
			
			else if(d==2){
				if (a[x][y-1]=='.'&&y-1>0){
					y-=1;
					if(again[x][y]==true)sum-=1;
					check[x][y]=true;
					again[x][y]=true;
				}else{
					d=(d+1)%4;
				}
			}
			else if(d==3){
				if (a[x-1][y]=='.'&&x-1>0){
					x-=1;
					if(again[x][y]==true)sum-=1;
					check[x][y]=true;
					again[x][y]=true;
				}else{
					d=(d+1)%4;
				}
			}
		}
		
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
				if(check[i][j]==true)sum+=1;
			}
		}
		cout<<sum<<endl;
	}


	return 0;
}

2024/10/26 23:00
加载中...