UOJ Logo Universal Online Judge

UOJ

#255. 【Rujia Liu's Present 7】Xmas gift

附件下载 统计

圣诞节到了,佳佳和小伙伴们一起参加到游园会。

游园会的正中央有两块完全相同的巨大圆盘,一块放在地上,一块用细丝悬挂在空中,圆心相对,如下图所示。

示例

在圆盘A的圆周上,均匀的分布着 $n$ 根直径相同的小银针,长度为 $1, 2,\cdots, n$ 的针各一根,所有银针均垂直圆盘向下;在圆盘 B 的圆周(和 A 的圆周尺寸相同)上,均匀的分布着 $n$ 个小孔,深度为 $1, 2,\cdots, n$ 的孔各一个,孔的直径和针恰好一样,因此银针可以插到孔里。

佳佳可以把圆盘 A 往下压,直到有的银针碰到孔底。如果有的针的长度比孔的深度大,则针会有部分露在外面,圆盘A仍会离圆盘B有一定的距离。显然,这个距离就是所有银针长度减去相应孔深的最大值。如果圆盘 A 紧贴着圆盘 B,即所有银针的长度都恰好等于相应孔的深度,佳佳可以拿到一份特殊的圣诞礼物,据说它可以帮助佳佳实现一个愿望。

遗憾的是,直接把圆盘 A 压下去并不一定能让两个圆盘恰好拼合,好在圆盘的设计者告诉佳佳,圆盘 A 是可以旋转的,而且一定存在一个位置可以将两个圆盘完美的拼合在一起。

可是佳佳只能看见圆盘 A 上各个针的长度,而无法得知圆盘 B 的各个孔的深度,他只有每次旋转圆盘 A,然后试着把两个圆盘压在一起,即使两盘并未紧贴在一起,他也可以得到两个圆盘的距离并以此决定下一次旋转的角度。你能帮助佳佳拿到那份特殊的圣诞礼物吗?

需要特别注意的是:由于很多小朋友排着队想玩这个游戏,因此每个人只有 $5$ 次让圆盘 A 落下的机会。

交互格式

本题是一道交互式试题,你的程序需要和交互程序通过标准输入输出进行交互。每次向标准输出打印了一行后,请立即刷新缓冲区

对于每个测试点,交互库首先输出一行一个整数 $T$ 表示数据组数。

对于每组测试数据:

交互库会先输出两行,第一行给出 $n$ 表示杆子个数,第二行 $n$ 个整数逆时针给出杆子长度。

你可以输出若干行操作与交互库交互。

  1. Rotate k 表示将上半部顺时针旋转 $k$ 单位。
    • 交互库不会返回任何信息。
  2. Drop 表示尝试进行嵌合。
    • 交互库会返回两部分的距离,即 $\max\{l_i-d_i\}$,$l_i$ 表示第 $i$ 根杆子的高度,$d_i$ 表示第 $i$ 个孔的深度。
    • 如果交互库返回 $0$,交互库会立刻结束这组数据的评测。

对于每组测试数据,你最多使用 $5$ 次 Drop 操作。

样例

交互库输出 选手程序输出
1 $~$
5 $~$
2 5 1 3 4 $~$
$~$ Rotate 4
$~$ Drop
3 $~$
$~$ Rotate 3
$~$ Drop
0 $~$

explanation

洞的深度为 $1,3,4,2,5$,第一次 Rotate 操作后,杆子长度为 4,2,5,1,3

数据范围与提示

本题只有一个测试点,保证 $1\leq T\leq 25, 1\leq n\leq 100000$。

时间限制:$\texttt{10s}$

空间限制:$\texttt{512MB}$

来源

Uva Online Judge,WC2003,题目作者刘汝佳。

特别鸣谢:各位验题人, Md. Mahbubul Hasan