G. 我的车呢?
time limit per test
1 second
memory limit per test
512 megabytes
input
standard input
output
standard output

这是一道交互题。

小H正在停车场寻找他的车。但是不巧的是他是个星际玩家,无法直接看见自己的车,即使车就在他附近。他只能通过手中的车钥匙来判断车的位置。

具体来说,我们将停车场看成一个二维平面,小H的位置表示为一个点 (x, y),车的位置也表示为一个点 (x1, y1)。如果小H与车的距离在车钥匙的侦测范围 r 内,车钥匙会闪烁提示;否则不会有任何提示。

小H现在位于 (0, 0),他的车钥匙正在闪烁。你可以让小H最多移动 300 次,以判断车的位置。

上述 r, x, y, x1, y1 均为浮点数,且保证  - 10000 < x1, y1 < 100000 < r < 107

Interaction

首先,交互程序会输出一行,包含一个浮点数 r,表示车钥匙的探测范围。

你可以输出询问,形式为 "? x y"(不含引号),其中 xy 是范围无限制的任意浮点数,表示将小H的位置移动到 (x, y)。此时如果车钥匙会闪烁,则交互系统输出1;否则输出0。

你也可以输出回答,形式为 "! x y"(不含引号),其中 xy 是浮点数。如果 (x, y) 与车的位置的距离的绝对值不超过 10 - 6,则视为回答正确。否则会导致 Wrong Answer

你最多可以进行 300 次询问,但只能进行一次回答。

在进行一次询问或回答后,请立即输出换行,并使用下列语句刷新屏幕缓冲区,否则可能会导致超时错误:

  • fflush(stdout) or cout.flush() in C++;
  • System.out.flush() in Java;
  • flush(output) in Pascal;
  • sys.stdout.flush() in Python;
Example
Input
5

1

1
Output
? 1.0 6.0

? 1.0 -4.0

! 1.0 1.0