交互输出:
最多可以测试 次,对于每次测试,输出形如 ? l r
的一行,包含两个 以内的正整数 并换行。
当你找出错拿的书后,输出形如 ! x
的一行并换行。其中 x 为错拿的书的编号。
注意:
每次输出之后,必须刷新输出缓冲区,否则将会得到 TLE 的结果。
你只能输出一次表示已经找出错拿书的指令,并且在此之后不应继续输出,因为你已经找到了。
记得输出时要输出换行符。
刷新输出缓冲区的方式如下:
编程语言 |
操作方式 |
C/C++ |
fflush(stdout); |
Java |
System.out.flush(); |
Python |
stdout.flush(); |
Pascal |
flush(output); |
其它语言请参见各自文档。
下面给出 C/C++ 的一种交互方式:
int query(long long l, long long r)
{
printf("? %lld %lld\n", l, r);
fflush(stdout);
int x;
scanf("%d", &x);
return x;
}