本地能正常运行,洛谷编译失败,不知道怎么回事
#include <bits/stdc++.h>
using namespace std;
#define debug cout<<"Ok"<<endl;
#define sc second
#define fr first
#define pb push_back
#define LL long long
typedef const int Int;
typedef pair<int,int> pii;
Int N=1005,M=105;
int m,n,x0,y0;
char c[M][M];
string ops;
int op[N];
int dp[2][M][M][5];
int dx[5]={0,1,0,-1};
int dy[5]={1,0,-1,0};
int main(){
cin.tie(0);
memset(dp,0x3f,sizeof(dp));
scanf("%d%d%d%d",&m,&n,&x0,&y0);
dp[0][x0][y0][1]=0;
for(int i=1;i<=m;i++){
for(int j=1;j<=m;j++)cin>>c[i][j];
}
for(int i=1;i<=n;i++){
cin>>ops;
if(ops=="FORWARD")op[i]=1;
else if(ops=="BACK")op[i]=2;
else if(ops=="LEFT")op[i]=3;
else op[i]=4;
}
for(int i=1;i<=n;i++){
int pre=(i&1)^1,nw=i&1;
for(int x=1;x<=m;x++){
for(int y=1;y<=m;y++){
for(int j=1;j<=4;j++)dp[nw][x][y][j]=dp[pre][x][y][j]+1;
}
}
if(op[i]==1){
for(int x=1;x<=m;x++){
for(int y=1;y<=m;y++){
for(int j=1;j<=4;j++)dp[nw][x][y][j]=min(dp[nw][x][y][j],dp[pre][x-dx[j]][y-dy[j]][j]);
}
}
}
else if(op[i]==2){
for(int x=1;x<=m;x++){
for(int y=1;y<=m;y++){
for(int j=1;j<=4;j++)dp[nw][x][y][j]=min(dp[nw][x][y][j],dp[pre][x+dx[j]][y+dy[j]][j]);
}
}
}
else if(op[i]==3){
for(int x=1;x<=m;x++){
for(int y=1;y<=m;y++){
for(int j=1;j<=4;j++)dp[nw][x][y][j]=min(dp[nw][x][y][j],dp[pre][x][y][(j==1)?4:j-1]);
}
}
}
else{
for(int x=1;x<=m;x++){
for(int y=1;y<=m;y++){
for(int j=1;j<=4;j++)dp[nw][x][y][j]=min(dp[nw][x][y][j],dp[pre][x][y][(j==4)?1:j+1]);
}
}
}
}
int ans=INT_MAX;
for(int x=1;x<=m;x++){
for(int y=1;y<=m;y++){
for(int j=1;j<=4;j++)if(c[x][y]=='.')ans=min(ans,dp[(n&1)][x][y][j]);
}
}
printf("%d",ans);
return 0;
}