CF1078E.Negative Time Summation

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

众所周知,计算机的速度越来越快。最近,Berland 的科学家们制造了一台能够让自己回到过去的机器!

更具体地说,它的工作方式如下:它有一个无限大的网格和一个站在某个格子上的机器人。网格上的每个格子要么是空的,要么包含 00 或 11。这台机器还有一个由指令组成的程序,指令会被逐条执行。每条指令由恰好一个符号(字母或数字)表示,除最后一种操作外,每条指令的执行都恰好需要一个时间单位(比如一秒)。具体指令如下:

  • 0 或 1:机器人在当前位置的格子中写入该数字。如果该格子原本不是空的,则无论如何都会被新数字覆盖。
  • e:机器人擦除当前位置格子中的数字。
  • l、r、u 或 d:机器人向左/右/上/下移动一个格子。
  • s:机器人在原地等待一个时间单位。
  • t:设 xx 为 00,如果机器人所在的格子是空的;否则,xx 等于该格子中的数字加 11(即,如果该格子是 00,则 x=1x=1,如果是 11,则 x=2x=2)。然后,机器会回到 xx 秒之前的时刻。注意,这不会改变指令的执行顺序,但会让机器人和网格回到 xx 个时间单位前的状态。你可以把这个操作看作是按下了 xx 次 Ctrl-Z。

例如,假设初始网格完全为空,程序为 sr1t0,机器人初始位置为 (0,0)(0,0)。

  • 【当前时刻为 00,指令为 s】:什么都不做。
  • 【当前时刻为 11,指令为 r】:机器人现在在 (1,0)(1,0)。
  • 【当前时刻为 22,指令为 1】:机器人在 (1,0)(1,0),该格子写入 11。
  • 【当前时刻为 33,指令为 t】:回到 1+1=21+1=2 个时刻之前,即回到时刻 11。
  • 【当前时刻为 11,指令为 0】:机器人又回到 (0,0)(0,0),网格也恢复为空,但执行完这条指令后,该格子写入 00。你刚刚重写了历史。第三条指令的后果已经消失。

现在,Berland 的科学家们想要实际应用他们的机器。例如,他们想要实现两个整数的加法。

假设机器的初始状态如下:

  • 一个正整数以二进制形式写在网格上,其最低位在 (0,1)(0,1),从左到右依次为从高位到低位。
  • 另一个正整数以二进制形式写在网格上,其最低位在 (0,0)(0,0),从左到右依次为从高位到低位。
  • 其他所有格子都是空的。
  • 机器人位于 (0,0)(0,0)。
  • 我们认为这个状态永远存在于过去;也就是说,如果你设法回到任何负的时刻,网格总是如上所述,机器人也永远在 (0,0)(0,0)。

你的任务是编写一个程序,使得执行完后:

  • 机器人停在一个非空的格子上;
  • 如果我们从机器人当前位置开始,向右依次读取直到遇到第一个空格子,这些数字组成的二进制数(从高位到低位)就是 a+ba+b。

注意,对其他格子没有任何要求。特别地,最终机器人左侧的格子也可能有数字。

每组测试你会得到最多 10001000 对 (a,b)(a, b),你的程序必须对所有这些输入都能正确工作。此外,由于机器的内存有限,你的程序长度不得超过 10510^5 条指令。

输入格式

第一行包含一个整数 tt(1≤t≤10001\le t\le 1000),表示测试用例的数量。接下来的 tt 行,每行包含两个正整数 aa 和 bb(1≤a,b<2301\le a, b < 2^{30}),以十进制给出。

输出格式

输出仅一行,由不超过 10510^5 个字符组成,每个字符为 0、1、e、s、l、r、u、d、t 中的一个,表示你的程序。

注意,形式上你可以为不同的测试输出不同的程序。

输入输出样例

  • 输入#1

    2
    123456789 987654321
    555555555 555555555
    

    输出#1

    0l1l1l0l0l0l1l1l1l0l1l0l1l1l0l0l0l1l0l1l1l1l0l0l0l1l0l0l0l0l1l0lr
    

说明/提示

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页