#P9931. [NFLSPC #6] 挑战停机问题
[NFLSPC #6] 挑战停机问题
题目背景
作为新时代的 OIer/XCPCer,你已经不满足于挑战 NPC 问题了。你想挑战数学的不可判定性——图灵停机问题。
题目描述
图灵给了你一个程序。程序开始运行之初,有且仅有一个变量 ,初始值为 。程序共有 行,行号为 ,每行是如下几种形式之一:
- A a:令 ,然后执行下一行。
- G x:执行第 行。
- I l r x y:如果 则执行第 行,否则执行第 行。
- E:直接结束程序。
保证最后一行是 E。
图灵希望你判断这个程序从第一行开始执行会不会结束。为了进一步检验你到底是不是真的会判定停机问题(还是装的?),图灵还要求你给出  最终的值,如果程序不会结束且不存在一个时刻使得在其以后  不再变化,则输出 @Turing ?。
输入格式
本题多测。第一行一个正整数 表示数据组数,对于每组数据:
- 第一行一个整数 ,表示程序的行数。
- 接下来 行,描述程序。
输出格式
对于每个询问,输出两行:
- 第一行一个字符串 Yes或No,表示程序是否会结束。
- 第二行一个整数  或字符串 @Turing ?,表示 最终的值。
3
5
I 1 7 1 3
G 4
A 2
G 2
E
6
A 2
I 2 3 5 1
E
G 4
A 1
E
4
A 1
G 1
E
E
No
2
Yes
3
No
@Turing ?
提示
对于所有数据,,,,,。保证输入涉及到的所有数字都是整数。
- 子任务 1(15 分):不存在 I类语句。
- 子任务 2(20 分):。
- 子任务 3(40 分):。
- 子任务 4(25 分):无特殊限制。
Source:NFLSPC #6 G by chenxia25
