资讯详情

ZCMU--5150: gsy 的仓库盲跑(C语言)

Description

最近有一部电视剧很受欢迎,其中一个故事是主人公在仓库里看不到任何货物盲跑,也就是说,用记忆来确认你的位置,去你想去的地方。

gsy 最近也想试试自己的记忆力,于是她找到了类似的游戏。

游戏一开始就会给玩家看n?m地图,地图 '*' 表示墙,'.' 表示空地,## 说明玩家的位置,当然,玩家一开始的位置一定是空地

但一旦玩家开始移动,地图就会变黑,也就是说,玩家不知道他们的角色现在在哪里,直到他们移动 1001 之后,地图将重新显示

游戏有四种操作:

  1. U 向上走一步
  2. L 向左走一步
  3. D 向下走一步
  4. R 向右走一步

但很明显,如果 gsy 下一步将到达墙壁或地图边界,这一步将跳过

比如当地图为

*# ..

此时发布的操作为LRD, 因为左边是墙的右边是递推边界,所以LR两次操作无效

三次操作后,地图会变成

*. .#

现在 gsy 已经走了p但她只记得自己做了什么手术,却不知道自己到底去了哪里,所以她想向你求助。

请你告诉gsy现在的地图是什么样的?

Input

第一行包括三个正整数n,m,p表示地图大小为n?m,gsy 已经走了p步 接下来n行,每行包含m字符的含义如题所示 接下来包括一行,共p每个字符表示一个字符gsy一次操作,题目保证只会出现U,L,D,R这四个字符。

对于60%的数据,n,m≤30,p≤60

对于100%的数据,n,m≤100,p≤1000

Output

对于100%的数据,n,m≤100,p≤1000

Sample Input

2 2 3

* #

. .

LRD

Sample Output

* .

. #

分析:模拟行走路径。在每次移动之前,首先判断它是否会超过边界或不是空间。如果你合法前进,改变地图,改变角色坐标,最后输出地图。

#include <stdio.h> char a[105][105],b[1005]; int main() {  int n,m,q,i,j,x,y;  while(~scanf("%d%d%d",&n,&m,&q)){   for(i=1;i<=n;i  ){    for(j=1;j<=m;j  ){     scanf(" %c",&a[i][j]); //建立初始地图     if(a[i][j]=='#') x=i,y=j; //记录出生点    }   }   scanf("%s",b); ///阅读移动指令   for(i=0;i<q;i  ){    if(b[i]=='L'&&y-1>0&&a[x][y-1]=='.') a[x][y-1]='#',a[x][y]='.',y--; ///更新地图,更新角色坐标    else if(b[i]=='R'&&y 1<=m&&a[x][y 1]=='.') a[x][y 1]='#',a[x][y]='.',y  ;    else if(b[i]=='D'&&x 1<=n&&a[x 1][y]=='.') a[x 1][y]='#',a[x][y]='.',x  ;    else if(b[i]=='U'&&x-1>0&&a[x-1][y]=='.') a[x-1][y]='#',a[x][y]='.',x--;   }   for(i=1;i<=n;i  ){    for(j=1;j<=m;j  ) printf("%c",a[i][j]);    printf("\n");    }  }  return 0; }

标签: 热过载继电器lrd06c热继电器lrd1321n10

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台