一方通行与最后之作

学园都市仅有的七名超能力者(Level 5)排名第一位,能力为“矢量操作”,代号「一方通行(Accelerator)」。

   某天,「最后之作」自己去商场玩耍,很晚还没有回来。「一方通行」很担心于是决定去找最后之作。商场可以大体看作一个 N*M 的矩形,墙壁和遮挡物用 '*' 表示,空白位置用 '.' 表示,一方通行和最后之作的起始位置分别用 'A' 和 'L' 表示。(显然,他们两个人的起始位置是不可能有遮挡物的)两人总共最多进行 K 次移动,每次移动可以用两个字符串 name 和 direction 来表示。如果 name 为"Accelerator",表示本次是「一方通行」移动。如果 name 为"LastOrder",表示本次是「最后之作」移动。direction 可能为"up"或"down"或"left"或"right",分别表示向上、向下、向左、向右移动一个单位长度。 如果本次要移动的位置在商场外或者存在遮挡物,那么将不移动。如果两人中途已经相遇(坐标重合),那么之后的所有移动全部取消。数据保证「一方通行」和「最后之作」会相遇,如果最后是「一方通行」走向「最后之作」请输出"Accelerator",如果是「最后之作」走向「一方通行」请输出"MisakaMisaka"。然后输出两人实际总共移动了多少步。

Input
首先输入两个正整数 N, M表示商场的大小。(2 <= N, M <= 100)

然后输入一个 N 行 M 列的字符矩阵。

下一行输入一个正整数 K,表示两人总共最多进行 K 次移动。 ( 1 <= K <= 100)

接下来 K 行,每行包括两个字符串,分别表示移动的角色和移动的方向。

Output
第一行输出一个字符串。

第二行输出一个正整数,表示两人实际总共移动了多少步相遇。

Sample Input
4 5
A.

…*…
…L
11
Accelerator down
LastOrder left
LastOrder right
LastOrder left
LastOrder left
Accelerator down
Accelerator down
Accelerator down
LastOrder up
LastOrder left
LastOrder left

Sample Output
MisakaMisaka
9
Hint
样例中,两人最终在第四行第一列相遇,最后一次移动是「最后之作」走向「一方通行」。

「一方通行」移动了3步,「最后之作」移动了6步,两人总共移动了9步。

#include<bits/stdc++.h>
using namespace std;
char s1[110];
char s2[110];
int main()
{int n,m,i,j,k,l=0;int x1,y1,x2,y2;char a[110][110];char s1[110];char s2[110];int flag=0;scanf("%d%d",&n,&m);for(i=1; i<=n; i++){for(j=1; j<=m; j++){scanf(" %c",&a[i][j]);if(a[i][j]=='A'){x1=i;y1=j;}if(a[i][j]=='L'){x2=i;y2=j;}}}scanf("%d",&k);while(k--){scanf("%s %s",s1,s2);if((strcmp(s1,"Accelerator")==0)&&flag==0){if((strcmp(s2,"down")==0)&&(a[x1+1][y1]!='*'&&x1+1<=n)){x1+=1;l++;}else if((strcmp(s2,"left")==0)&&(a[x1][y1-1]!='*'&&y1-1>=1)){y1-=1;l++;}else if((strcmp(s2,"right")==0)&&(a[x1][y1+1]!='*'&&y1+1<=m)){y1+=1;l++;}else if((strcmp(s2,"up")==0)&&(a[x1-1][y1]!='*'&&x1-1>=1)){x1-=1;l++;}if(x1==x2&&y1==y2){flag=1;}}else if((strcmp(s1,"LastOrder")==0)&&flag==0){if((strcmp(s2,"down")==0)&&(a[x2+1][y2]!='*'&&x2+1<=n)){x2+=1;l++;}else if((strcmp(s2,"left")==0)&&(a[x2][y2-1]!='*'&&y2-1>=1)){y2-=1;l++;}else if((strcmp(s2,"right")==0)&&(a[x2][y2+1]!='*'&&y2+1<=m)){y2+=1;l++;}else if((strcmp(s2,"up")==0)&&(a[x2-1][y2]!='*'&&x2-1>=1)){x2-=1;l++;}if(x1==x2&&y1==y2){flag=2;}}}if(flag==1)printf("Accelerator\n");if(flag==2)printf("MisakaMisaka\n");printf("%d\n",l);return 0;
}

4384---一方通行与最后之作 (sdut oj)相关推荐

  1. 喵帕斯之副食店 (sdut oj)

    ** 喵帕斯之副食店 (sdut oj) ** Problem Description 莲酱又去副食店买吃的去惹.现在莲酱有一些不同面额硬币,和一个非常喜欢的糖果. 但是莲酱不知道自己能够买多少颗糖果 ...

  2. SDUT OJ 图练习-BFS-从起点到目标点的最短步数 (vector二维数组模拟邻接表+bfs , *【模板】 )...

    图练习-BFS-从起点到目标点的最短步数 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 在古老的魔兽传说中,有两个军团,一个叫天 ...

  3. SDUT OJ单个字符输入和输出(顺序结构)

    SDUT OnlineJudge #include<iostream> #include<string.h> using namespace std; int main() { ...

  4. SDUT OJ 2976

    写在前面: 最近有小学弟问了,刚来的小学弟正在打基础的阶段 于是po出了老同学写的答案^^ 希望小学弟们能在c/c++的世界打出一片天地,算法的大门时刻为你们打开oooooo A Problem De ...

  5. SDUT OJ 2974

    写在前面: 最近有小学弟问了,刚来的小学弟正在打基础的阶段 于是po出了老同学写的答案^^ 希望小学弟们能在c/c++的世界打出一片天地,算法的大门时刻为你们打开oooooo A Problem De ...

  6. C语言实验——各位数字之和排序 (sdut oj)

    C语言实验--各位数字之和排序 Time Limit: 1000MS  Memory Limit: 65536KB Problem Description 给定n个正整数,根据各位数字之和从小到大进行 ...

  7. SDUT OJ 数据结构实验之排序一:一趟快排

    数据结构实验之排序一:一趟快排 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descrip ...

  8. SDUT OJ[3109] 买买买 背包 dp

    好久没做题了,今天来一发. 根据题意,可以推出状态转移方程: dp[cost][weight] = max(dp[cost][weight], dp[cost-s[i].cost][weight-s[ ...

  9. SDUT OJ 数据结构实验之链表四:有序链表的归并

    数据结构实验之链表四:有序链表的归并 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Desc ...

最新文章

  1. gltf与glb格式转换 gltf-pipeline、binary-gltf-utils
  2. 性能优化工具 MVC Mini Profiler
  3. (二十六)、Java数组在内存中如何存放与分配
  4. Py之PyWapFetion:PyWapFetion的简介、安装、使用方法之详细攻略
  5. 传递类型为参数的方法
  6. DVWA--SQL注入
  7. android 读取assets文件夹下的文件资源
  8. linux下memcache安装
  9. Class.forName和ClassLoader
  10. 详细介绍MySQL/MariaDB的锁
  11. 企业级实战01_ActiveMQ 下载、安装、运行、实战需求
  12. linux-进程杀死的操作
  13. 17_python基础—面向对象-继承
  14. ios 动画 隐藏tabbar_iOS_自定义转场TabBar的隐藏动画
  15. java.util.DualPivotQuickSort的实现
  16. Ext.data.Store 获取Json数据只有一行,而且是最后一行
  17. [转载] 数组快速排序python_python实现快速排序
  18. git遇到的错误集锦及解决方法
  19. spring RedisTemplate 缓存
  20. Windows server2012r2安装密钥

热门文章

  1. 【转载】古龙·断章·小札[十二]:《多情剑客无情剑》
  2. java打包跳过test_maven打包如何跳过测试操作的?
  3. Visual Paradigm 如何清除系统代理设置
  4. 微软技术大会-无人机为中国电信巡航基站
  5. 事件参数screenX、pageX、clientX 、offsetX的区别
  6. Android高级特性笔记
  7. SAP 打开总账科目
  8. 谷歌退出将会给中国互联网带来的10个变化
  9. Android调用摄像头--农民伯伯原文
  10. Civil3D 2018-02 点