瓶子国的故事

题目背景

这是一道非传统题。 传说有一个国家叫瓶子国,里面有大大小小的瓶子。 现在瓶子国想要学习邻居跳蚤国发展计算机,可是瓶子国没有计算机只有瓶子。 于是瓶子国国王就给了你一些瓶子,让你实现一些计算任务。

题目描述

我们用水的量来描述一个数。 - 一个瓶子的容量为它最多可以装的水的数量。 瓶子国国王认为瓶子可以干这些事: - $\verb!I!$:制造一个新瓶子,它的容量和里面装的水量都为输入的数,这个瓶子的编号为 $\textbf{当前最大编号} +1$。 - $\verb!F !s$;把编号为 $s$ 的瓶子里的水倒满。 - $\verb!E !s$:把编号为 $s$ 的瓶子里的水倒空。 - $\verb!C !s$:制作一个新瓶子,它的容量为 $s$,里面没装水,这个瓶子的编号为 $\textbf{当前最大编号} +1$。注意由于瓶子容积有限,$0\le s\le 10^9$。 - $\verb!M !s$:制作一个新瓶子,它的容量为 $\textbf{s 号瓶子里装的水的数量}$,里面没装水,这个瓶子的编号为 $\textbf{当前最大编号}+1$。 - $\verb!T !a\ b$:把 $a$ 瓶往 $b$ 瓶倒水,直到 $a$ 瓶空或者 $b$ 瓶满为止。(注意 $a\neq b$)。 - $\verb!O !s$:把 $s$ 号瓶子里的水输出。 还有一种昂贵的操作: - $\verb!K !a\ b$:制作一个新瓶子,它的容量为 $\textbf{a 号瓶子的容量} \times \textbf{b 号瓶子的容量}$,这个瓶子的编号为 $\textbf{当前最大编号}+1$。注意由于瓶子容积有限,$\textbf{a 号瓶子的容量}\times\textbf{b 号瓶子的容量}$,不能超过 $10^9$。(使用这种操作要扣分,评分规则详见下方提示) 现在瓶子国国王把这些操作给了你,你只要输出这些操作,瓶子国的瓶子们就会为你执行! 瓶子国国王给了你一些计算任务,你只需要实现这些任务就行啦! 左边是数据点编号,右边是计算任务。 1. 输入 $a$ 和 $b$,计算 $a+b$。($0\le a,b\le 10^5$) 2. 输入 $a$ 和 $b$,计算 $|a-b|$。($0\le a,b\le 10^5$) 3. 输入 $a$ 和 $b$,计算 $\max(a,b)$。($0\le a,b\le 10^5$) 4. 输入 $a$ 和 $b$,输出 $\gcd(a,b)$。($1\le a,b\le 1000$) 5. 输入 $a$,输出 $a$ 的 $32$ 位二进制表示。($0\le a\le 10^5$,例如 $5$ 输出 $\verb!0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1!$) 6. 输入 $a$ 和 $b$,输出 $a\times b$。($0\le a,b\le 1000$) 7. 输入 $a$ 和 $b$,输出 $a\oplus b$。($0\le a,b\le 10^5$,$\oplus$ 表示异或) 8. 输入 $a$,输出 $a\div 10$ 下取整。($1\le a\le 10000$) 9. 输入 $a$ 和 $b$,输出 $a\times b \bmod 262144$。($0\le a,b\le 10^5$) 10. 输入 $a$ 和 $b$,输出 $a$ 的 $b$ 次方。($1\le a,b\le 1000$,$a$ 的 $b$ 次方不超过 $10^6$) 瓶子国国王会生成 $30$ 组**左右**的数据对你的程序进行测试,并根据你使用的操作个数进行评分,评分规则详见下方提示。 (**UPD**:如果你没有看懂题目这里有一段补充说明) 你**提交到洛谷的程序**(C/C++/Pascal)需要输出一段操作,格式类似样例输出。 例如第一个点,提交后洛谷上的 checker 会随机生成 $a$ 和 $b$ 作为 $\verb!I!$ **操作的输入**来测试你的操作。 对于本地 checker(下载见提示区),你可以把输出的操作保存成 `a.txt`,然后第一行输入 `a.txt`,第二行如果手玩就输 $0$,如果测试指定点就输编号。

输入输出格式

输入格式


输入共一行一个整数,表示数据点编号。

输出格式


输出可以满足计算任务的操作。

输入输出样例

输入样例 #1

233
// 仅作为参考,这里应该填数据编号

输出样例 #1

I
C 1
F 2
C 233333
T 1 3
T 2 3
O 3
(这个程序可以进行x+1!是不是很厉害啊!不过程序中并不能附加任何注释)

说明

请注意提交的是一段**输出操作的程序**!(如果你生成答案之后把生成它的程序删了直接打表输出,可能会输出超限) 灵感来自 NOI2016 旷野大计算(其实我不说你们肯定也知道啊) 为了方便选手本地测试,下面是一个 C++ 的本地checker(需要注意的是,它的测试结果与洛谷上的测试结果不一定一样,洛谷上可能更严格): - http://paste.ubuntu.com/23070332/ 如果需要下载 exe 的话可戳度盘: - http://pan.baidu.com/s/1o7HZ1GY 密码为 `kqhl`。 ### 评分规则 如果你的算法输出了错误结果(多输出也算)或者发生运行错误(操作不符合要求等)或者行数超过 $5\times 10^6$ 行或者行数太长了 checker 没能在 $1s$ 内测试完 $30$ 组数据,你将获得 $0$ 分。 否则,假设 std 的步数为 $s$,你的步数为 $x$。 - 如果 $x\le s$,你的基准分为 $10$ 分。 - 如果 $s<x\le s+5$,你的基准分为 $9$ 分。 - 如果 $s+5<x\le 3s$,你的基准分为 $8$ 分。 - 如果 $3s<x\le 10s$,你的基准分为 $7$ 分。 - 如果 $10s<x\le 50s$,你的基准分为 $6$ 分。 - 如果 $x>50s$,你的基准分为 $5$ 分。 如果你使用了昂贵的 $\verb!K!$ 操作,你会得到(基准分 $-4$)分。 否则你会得到基准分。 (说人话:步数越少分越高,用K操作扣4分) (**UPD2:洛谷上的checker常见错误信息**) ```cpp too many lines:超过500w行(这个似乎还没有触发过) WTF:就是操作的第一个字符串(I/T/K/F/E/C/M/O)长度大于1 (可能是由于上一个操作多跟了一个操作数?) wrong operation:操作的第一个字符串长度为1但不是I/T/K/F/E/C/M/O。 expected *****:希望输入一个数/字符串却没有(可能是操作数多打/少打) nothing to input:I操作数量大于输入的数数量 F/E/C/M/T/O/K wrong bottle:操作的瓶子编号不在[1,当前最大编号]范围内 C exceed [0,10^9]:字面意思 K exceed 10^9:字面意思 wa on test xxx:你在第xxx组随机数据狗带了 wa on extratest xxx:你在第xxx组人工数据(手打的)狗带了 ```