#coding=UTF-8 #log_2 10^9=29.89だそうな #100以上なら(わりかし)普通の二分探索でやるだけの話 #1 cmとかいうevilなのが無いのが救いか #100未満の場合はあと9回で 楽勝でしょ #ユキコちゃんとのやりとりのしかたはNo.246(URIは551)を参考に import sys ans=1 jogen=10**9 kagen=10 burnt=0 print('? 100') sys.stdout.flush() res = int(input()) if res==0: kagen=100 jogen=100 elif res==1: kagen=100+1 else: jogen=100-1 burnt=burnt+1 while not (jogen-kagen<=1): print ("? "+str((jogen+kagen)//2-burnt)) sys.stdout.flush() res = int(input()) if res==0: kagen=(jogen+kagen)//2 jogen=kagen elif res==1: kagen=(jogen+kagen)//2+1 else: jogen=(jogen+kagen)//2-1 burnt=burnt+1 # print((jogen,kagen)) if jogen-kagen==1: print("? "+str(jogen-burnt)) sys.stdout.flush() res=int(input()) if res==0: ans=jogen else: ans=kagen else: ans=jogen print("! "+str(ans)) sys.stdout.flush() #質問する数を変数に仕舞っておくと良かったかもしれない