AT_utpc2011_4.停止問題
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Defunge 程序由一个 R 行 C 列的字符数组组成。下面是一个 Defunge 程序的例子:
6>--v.
.^--_@
Defunge 程序从程序的左上角(即第一行第一列)开始执行。它的执行方向一开始为"右",每次朝着执行方向走一步,如果走出界了,要跳到另一边。每走到一个格子上,就要执行这个格子上的命令。 Defunge 程序还有一个存储器,这个存储器只能存储 [0,15] 的一个整数,存储器一开始存储 0。
在 Defunge 程序中,有且只有 11+10=21 种命令,下面是它们各自的含义:
<:把执行方向设置为"左"。>:把执行方向设置为"右"。^:把执行方向设置为"上"。v:把执行方向设置为"下"。_:如果存储器存储的数字是 0,就把执行方向设置为"右",否则设置为"左"。|:如果存储器存储的数字是 0,就把执行方向设置为"下",否则设置为"上"。?:把执行方向设置为"上下左右"中的任意一个(类似于 dfs 把四个方向全搜一遍)。.:什么也不做。@:停止程序。0-9:把存储器设置为这个字符表示的数值。+:让存储器的数值加 1。注意当存储器的数值为 15 时要把它设为 0。-:让存储器的数值减 1。注意当存储器的数值为 0 时要把它设为 15。
现在,给你一个 Defunge 程序,请判断这个程序是否能停止(即执行到命令@)。如果能,输出YES,否则输出NO。
输入格式
第一行两个正整数 R,C,表示这个 Defunge 程序有 R 行 C 列。
接下来 R 行,每行有 C 个字符,描述这个 Defunge 程序。
输出格式
一行字符串YES或NO,表示这个程序是否能停止。
【样例】
样例输入 1:
2 6
6>--v.
.^--_@
样例输出 1:
YES
样例输入 2:
2 6
5>--v.
.^--_@
样例输出 2:
NO
样例输入 3:
2 6
.>--v.
.^--?@
样例输出 3:
YES
说明/提示
1≤R,C≤20,保证程序里只有上文提到的 21 种命令。
输入解题思路,AI测评打分。不知道怎么写?