tookunn’s diary

主に競技プログラミング関係

yukicoder No514 宝探し3

考察

  • 座標(0,0)と座標(AX,AY)のマンハッタン距離はAX+AYである。(AX+AY=Aとする)
  • そこで、座標(AX+AY,0)と座標(AX,AY)のマンハッタン距離AX+AY-AX+AY=Bを考える。(y座標を求めるためにx座標を0に固定する)
  • すると、B=AY+AY=2*AYとなり、AY=B/2と出来る。これでAYは求まった。
  • あとはA-AY=AXとなり、座標(AX,AY)が求まった。(A=AX+AYなので)

ソースコード

import sys
def query(p):
	print(p[0],p[1])
	sys.stdout.flush()
	ret = int(input())
	if ret == 0:
		sys.exit(0)
	return ret
a=query((0,0))
b=query(((a,0)))
query((a-b//2,b//2))