#N0375. 聪明的质检员2【NOIP2023模拟赛T2】

聪明的质检员2【NOIP2023模拟赛T2】

题目描述

这是一道交互题。

小明有nn个乒乓球,这里面有n1n-1个乒乓球是正品,有11个乒乓球是赝品。

正品和赝品唯一的区别是:质量不同。

于是小明搞来了一个天平。

每次,小明可以在天平左侧放一些乒乓球,在天平右侧放一些乒乓球,然后通过天平反馈的结果,来获得一些信息。

例如,一共33个球,小明分别称了(1,2),(1,3),(2,3)(1,2),(1,3),(2,3),发现结论是1<2,1<3,2=31<2,1<3,2=3,那么他就能得知,11号乒乓球是赝品。

现在,告诉你nn以及最多的称重次数kk,请你帮助小明发现那一只赝品。

输入格式

第一行输入n,kn,k

接下来,开始交互的过程:

首先,你需要输出如下两种之一:

(1)

t
a_1 a_2 a_3 ... a_t
b_1 b_2 b_3 ... b_t

其中,tt是你本次称重两边乒乓球的个数,接下来两行,表示天平两边的乒乓球编号,编号不需要按顺序输出,但一个球在一次称重中只能出现一次。

然后,交互库会返回一个字符串,是same,left,right,之一,表示两边一样重/左边重/右边重。

(2)

0 id type

00表示你猜到了结果,idid是赝品乒乓球的编号,typetype11代表它是轻的,22代表它是重的。然后你的程序应当结束。

建议使用cin,cout来交互,以及别忘了在每次输出完信息后执行cout.flush()

交互样例

IN:3 3
OUT:
1
1
2
IN:left
OUT:
1
1
3
IN: left
OUT:
0 1 2

样例解释

IN是你读入的部分,OUT是你输出的部分。

由于是交互题,本题贴心的提供了大样例提交地址:在隔壁的IOI赛制比赛。

数据范围

Subtask 1 (5分):n=99,k=5000n=99,k=5000

Subtask 2 (11分):n=99,k=198n=99,k=198

Subtask 3 (12分):n=29499,k=16n=29499,k=16

Subtask 4 (12分):n=29499,k=15n=29499,k=15

Subtask 5 (12分):n=29499,k=14n=29499,k=14

Subtask 6 (12分):n=29499,k=13n=29499,k=13

Subtask 7 (12分):n=29499,k=12n=29499,k=12

Subtask 8 (12分):n=29499,k=11n=29499,k=11

Subtask 9 (12分):n=29499,k=10n=29499,k=10

其中,每个Subtask各1010个测试点,第99个Subtask支持赛后Hack。