全RE求调
查看原帖
全RE求调
784175
Judging_zhu楼主2024/1/25 16:47
#include<bits/stdc++.h>
using namespace std;
int n,m,q[305][6],x1,x2,y2,y3,h,t=1;
char c;
bool a[55][55];
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
			if(!a[i][j])a[i-1][j]=a[i][j-1]=a[i-1][j-1]=0;
		}
	cin>>x1>>y2>>x2>>y3>>c;
	q[1][1]=x1,q[1][2]=y2,q[1][3]=0;
	if(c=='E')q[1][4]=1;
	if(c=='S')q[1][4]=2;
	if(c=='W')q[1][4]=3;
	if(c=='N')q[1][4]=4;
	while(h<t){
		h++;
		for(int i=1;i<=3;i++){
			if(q[h][4]==1&&q[h][2]+i<=m&&!a[q[h][1]][q[h][2]+i]){
				t++;
				q[t][2]=q[h][2]+i;
				q[t][1]=q[h][1];
				a[q[t][1]][q[t][2]]=1;
			}
			if(q[h][4]==2&&q[h][1]+i<=n&&!a[q[h][1]+i][q[h][2]]){
				t++;
				q[t][1]=q[h][1]+i;
				q[t][2]=q[h][2];
				a[q[t][1]][q[t][2]]=1;
			} 
			if(q[h][4]==3&&q[h][2]-i>0&&!a[q[h][1]][q[h][2]-i]){
				t++;
				q[t][2]=q[h][2]-i;
				q[t][1]=q[h][1];
				a[q[t][1]][q[t][2]]=1;
			}
			if(q[h][4]==4&&q[h][1]-i>0&&!a[q[h][1]-i][q[h][2]]){
				t++;
				q[t][1]=q[h][1]-i;
				q[t][2]=q[h][2];
				a[q[t][1]][q[t][2]]=1;
			}
			q[t][3]=q[h][3]+1;
		}
		++t;
		q[t][3]=q[h][3]+1;
		if(q[h][4]==1)q[t][4]=4;
		if(q[h][4]==2)q[t][4]=1;
		if(q[h][4]==3)q[t][4]=2;
		if(q[h][4]==4)q[t][4]=3;
		++t;
		q[t][3]=q[h][3]+1;
		if(q[h][4]==1)q[t][4]=2;
		if(q[h][4]==2)q[t][4]=3;
		if(q[h][4]==3)q[t][4]=4;
		if(q[h][4]==4)q[t][4]=1;
		if(a[x2][y3]){
			cout<<q[t][3]<<endl;
			return 0;
		}
	}
	return 0;
}

评测记录

2024/1/25 16:47
加载中...