CF1078E.Negative Time Summation
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
众所周知,计算机的速度越来越快。最近,Berland 的科学家们制造了一台能够让自己回到过去的机器!
更具体地说,它的工作方式如下:它有一个无限大的网格和一个站在某个格子上的机器人。网格上的每个格子要么是空的,要么包含 0 或 1。这台机器还有一个由指令组成的程序,指令会被逐条执行。每条指令由恰好一个符号(字母或数字)表示,除最后一种操作外,每条指令的执行都恰好需要一个时间单位(比如一秒)。具体指令如下:
- 0 或 1:机器人在当前位置的格子中写入该数字。如果该格子原本不是空的,则无论如何都会被新数字覆盖。
- e:机器人擦除当前位置格子中的数字。
- l、r、u 或 d:机器人向左/右/上/下移动一个格子。
- s:机器人在原地等待一个时间单位。
- t:设 x 为 0,如果机器人所在的格子是空的;否则,x 等于该格子中的数字加 1(即,如果该格子是 0,则 x=1,如果是 1,则 x=2)。然后,机器会回到 x 秒之前的时刻。注意,这不会改变指令的执行顺序,但会让机器人和网格回到 x 个时间单位前的状态。你可以把这个操作看作是按下了 x 次 Ctrl-Z。
例如,假设初始网格完全为空,程序为 sr1t0,机器人初始位置为 (0,0)。
- 【当前时刻为 0,指令为 s】:什么都不做。
- 【当前时刻为 1,指令为 r】:机器人现在在 (1,0)。
- 【当前时刻为 2,指令为 1】:机器人在 (1,0),该格子写入 1。
- 【当前时刻为 3,指令为 t】:回到 1+1=2 个时刻之前,即回到时刻 1。
- 【当前时刻为 1,指令为 0】:机器人又回到 (0,0),网格也恢复为空,但执行完这条指令后,该格子写入 0。你刚刚重写了历史。第三条指令的后果已经消失。
现在,Berland 的科学家们想要实际应用他们的机器。例如,他们想要实现两个整数的加法。
假设机器的初始状态如下:
- 一个正整数以二进制形式写在网格上,其最低位在 (0,1),从左到右依次为从高位到低位。
- 另一个正整数以二进制形式写在网格上,其最低位在 (0,0),从左到右依次为从高位到低位。
- 其他所有格子都是空的。
- 机器人位于 (0,0)。
- 我们认为这个状态永远存在于过去;也就是说,如果你设法回到任何负的时刻,网格总是如上所述,机器人也永远在 (0,0)。
你的任务是编写一个程序,使得执行完后:
- 机器人停在一个非空的格子上;
- 如果我们从机器人当前位置开始,向右依次读取直到遇到第一个空格子,这些数字组成的二进制数(从高位到低位)就是 a+b。
注意,对其他格子没有任何要求。特别地,最终机器人左侧的格子也可能有数字。
每组测试你会得到最多 1000 对 (a,b),你的程序必须对所有这些输入都能正确工作。此外,由于机器的内存有限,你的程序长度不得超过 105 条指令。
输入格式
第一行包含一个整数 t(1≤t≤1000),表示测试用例的数量。接下来的 t 行,每行包含两个正整数 a 和 b(1≤a,b<230),以十进制给出。
输出格式
输出仅一行,由不超过 105 个字符组成,每个字符为 0、1、e、s、l、r、u、d、t 中的一个,表示你的程序。
注意,形式上你可以为不同的测试输出不同的程序。
输入输出样例
输入#1
2 123456789 987654321 555555555 555555555
输出#1
0l1l1l0l0l0l1l1l1l0l1l0l1l1l0l0l0l1l0l1l1l1l0l0l0l1l0l0l0l0l1l0lr
说明/提示
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?