0分求助(样例对)
查看原帖
0分求助(样例对)
1170968
WEICY123楼主2024/11/9 18:24
#include<bits/stdc++.h>
using namespace std;
int n,m,k,x0,sy0,d0,ans=0;
int t,b[1001][1001];
char a[1001][1001];
int main(){
	cin>>t;
	while(t--){
		memset(b,0,sizeof(0));
		ans=0;
		cin>>n>>m>>k>>x0>>sy0>>d0;
		b[x0][sy0]=1;
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
				cin>>a[i][j];
			}
		}
		while(k--){
			if(d0==0){
				int y1=sy0+1;
				if(x0>=1&&x0<=n&&y1>=1&&y1<=m&&a[x0][y1]=='.'){
					sy0=sy0+1;
					b[x0][sy0]=1;
				}
				else d0=(d0+1)%4;
			}
			else if(d0==1){
				int x1=x0+1;
				if(x1>=1&&x1<=n&&sy0>=1&&sy0<=m&&a[x1][sy0]=='.'){
					x0=x0+1;
					b[x0][sy0]=1;
				}
				else d0=(d0+1)%4;
			}
			else if(d0==2){
				int y1=sy0-1;
				if(x0>=1&&x0<=n&&y1>=1&&y1<=m&&a[x0][y1]=='.'){
					sy0=sy0-1;
					b[x0][sy0]=1;
				}
				else d0=(d0+1)%4;
			}
			else if(d0==3){
				int x1=x0-1;
				if(x1>=1&&x1<=n&&sy0>=1&&sy0<=m&&a[x1][sy0]=='.'){
					x0=x0-1;
					b[x0][sy0]=1;
				}
				else d0=(d0+1)%4;
			}
		}
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
				if(b[i][j]==1)ans++;
			}
		}
		cout<<ans<<endl;
	}
}
2024/11/9 18:24
加载中...