感觉会超求打牢改改
查看原帖
感觉会超求打牢改改
1431934
h18993665831楼主2024/11/2 21:36
#include<bits/stdc++.h>
using namespace std;
int main(){
	int t;
	scanf("%d",&t);
	int ans[t+1];
	for(int i=1;i<=t;i++){
		ans[i]=1;
	}
	for(int c=1;c<=t;c++){
		int n,m,k,x,y,d;
		scanf("%d%d%d",&n,&m,&k);
		scanf("%d%d%d",&x,&y,&d);
		char a[n+1][m+1];
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
				cin>>a[i][j];
			}
		}
		for(int i=1;i<=k;i++){
			if(d==0){
				if(y<m&&a[x][y+1]!='x'){
					a[x][y]='N';
					if(a[x][y+1]=='.'){
						ans[c]++;
					}
					y=y+1;
				}
				else{
					d=(d+1)%4;
				}
			}
			else if(d==2){
				if(y>1&&a[x][y-1]!='x'){
					a[x][y]='N';
					if(a[x][y-1]=='.'){
						ans[c]++;
					}
					y=y-1;
				}
				else{
					d=(d+1)%4;
				}
			}
			else if(d==1){
				if(x<n&&a[x+1][y]!='x'){
					a[x][y]='N';
					if(a[x+1][y]=='.'){
						ans[c]++;
					}
					x=x+1;
				}
				else{
					d=(d+1)%4;
				}
			}
			else if(d==3){
				if(x>1&&a[x-1][y]!='x'){
					a[x][y]='N';
					if(a[x-1][y]=='.'){
						ans[c]++;
					}
					x=x-1;
				}
				else{
					d=(d+1)%4;
				}
			}
		}
	}
	for(int i=1;i<=t;i++){
		printf("%d\n",ans[i]);
	}
	return 0;
} 
2024/11/2 21:36
加载中...