| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 38519 | stevenyu | 【J】T3 | C++ | 运行出错 | 30 | 0 MS | 596 KB | 1538 | 2025-10-15 18:36:38 |
#include<bits/stdc++.h> using namespace std; #define int long long int n,m,k; char mp[55][55]; bool vis[55][55][55]; int op[1005]; int fx,fy; void dfs(int st,int x,int y){ if(vis[st][x][y]==1)return; vis[st][x][y]=1; if(st>k){ mp[x][y]='*'; return; } if(op[st]==0){ for(int nx=x-1;nx>=1;nx--){ if(mp[nx][y]=='X')break; dfs(st+1,nx,y); } } else if(op[st]==1){ for(int nx=x+1;nx<=n;nx++){ if(mp[nx][y]=='X')break; dfs(st+1,nx,y); } } else if(op[st]==2){ for(int ny=y-1;ny>=1;ny--){ if(mp[x][ny]=='X')break; dfs(st+1,x,ny); } } else{ for(int ny=y+1;ny<=m;ny++){ if(mp[x][ny]=='X')break; dfs(st+1,x,ny); } } } signed main(){ // freopen("car.in","r",stdin); // freopen("car.out","w",stdout); cin>>n>>m; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>mp[i][j]; if(mp[i][j]=='*'){ fx=i;fy=j; mp[i][j]='.'; } } } cin>>k; for(int i=1;i<=k;i++){ string s; cin>>s; if(s=="NORTH")op[i]=0; else if(s=="SOUTH")op[i]=1; else if(s=="WEST")op[i]=2; else op[i]=3; } dfs(1,fx,fy); for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cout<<mp[i][j]; } printf("\n"); } // fclose(stdin); // fclose(stdout); return 0; }