(壶关)(回复请@我)WA 0求调,在线等急
查看原帖
(壶关)(回复请@我)WA 0求调,在线等急
1366699
programmer330楼主2024/10/26 21:34
#include<bits/stdc++.h>
using namespace std;
int t;
int n,m,k,d,xx,yy,dd;
int x,y;
int a[1001][1001];
bool check[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;
			}
		}
		d=dd;
		x=xx;
		y=yy;
		check[x][y]=true;
		for(int i=1;i<=k;i++){
			if(d==0){
				if (a[x][y+1]=='.'&&y+1<=m){
					y+=1;
					check[x][y]=true;
				}else{
					d=(d+1)%4;
				}
			}
			if(d==1){
				if (a[x+1][y]=='.'&&x+1<=n){
					x+=1;
					check[x][y]=true;
				}else{
					d=(d+1)%4;
				}
			}
			
			if(d==2){
				if (a[x][y-1]=='.'&&y-1>0){
					y-=1;
					check[x][y]=true;
				}else{
					d=(d+1)%4;
				}
			}
			if(d==3){
				if (a[x-1][y]=='.'&&x-1>0){
					x-=1;
					check[x][y]=true;
				}else{
					d=(d+1)%4;
				}
			}
		}
		int sum=0;
		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 21:34
加载中...