| 2026 NUIT Freshman Contest |
|---|
| Finished |
这是一个 Run-Twice(通信)问题。在这些问题中,你的程序将运行两次。存储在内存中的所有变量都将在运行之间丢失,但在第一次运行中提供给您的信息对于在第二次运行中正确解决问题可能很重要。因此,主要的挑战是找到一种策略,使用您可以使用的有限输出在两次运行之间进行通信。
时间限制和内存限制在运行之间不共享。例如,在这个问题中,由于时间限制是 2 秒,因此只有当任一运行超过 2 秒时,您才会收到 Time Limit Exceeded 的结果,但如果程序的两次运行都持续 1.5 秒,则完全没问题。
第一次运行时,系统会给出一个正整数 $$$x$$$,你需要加密成一个仅由小写字母组成的字符串 $$$s$$$,且字符串长度不得超过 $$$50$$$。
第二次运行时,系统会根据你给出的字符串 $$$s$$$,随机打乱顺序后返回给你,你需要通过给出的字符串,复原出原先的数字 $$$x$$$。
第一次运行:
第一行输入一个字符串 first,这样做的目的是让程序识别出这是第一次运行程序,此时你需要完成加密功能。
第二行输入一个正整数 $$$T(1\le T\le 10^4)$$$,表示测试组数。
接下来 $$$T$$$ 组测试中,每组测试仅输入一个正整数 $$$x(1\le x\le 10^{9})$$$。
第二次运行:
第一行输入一个字符串 second,这样做的目的是让程序识别出这是第二次运行程序,此时你需要完成解密功能。
第二行输入一个正整数 $$$T(1\le T\le 10^4)$$$,表示测试组数。
接下来 $$$T$$$ 组测试中,每组测试仅输入选手第一次运行给出的字符串 $$$s$$$,但顺序被随机打乱。
第一次运行:
对于每组测试:
第二次运行:
对于每组测试:
注意:
在每一组测试输出完毕后,你需要刷新缓存区,使得交互程序能够读取你的结果并给出下一组测试数据,否则可能会导致 Idleness limit exceeded。
你可以通过一下方式刷新缓存区:
first 3 11 45 14
eleven fortyfive fourteen
second 3 elevne ofvfrteiy reetfoun
11 45 14
注意:样例仅作为输入输出实例演示。
| Name |
|---|


