using System; using System.Collections.Generic; class Program { //http://yukicoder.me/submissions/36416 ←参考にさせていただきました static void Main(string[] args) { int max = 100000000 + 1; int min = 0; bool finish = false; int count = 0; while (count < 15 && max - min > 10) { count ++; int mid = (min + max) / 2; Console.WriteLine("? " + mid); int answer = int.Parse(Console.ReadLine()); if (answer == 1)//↑にある { min = mid; } else if(answer == -1)//↓にある { max = mid; } else //ちょうどやで { Console.WriteLine("! "+ mid); finish = true; break; } } int ans = max - min; while (finish) { Console.WriteLine("? " + ans); int answer = int.Parse(Console.ReadLine()); if (answer == 1) { if (ans >= 5) { ans -= 5; } else { ans = 0; } } else if(answer == 0) { Console.WriteLine((ans == 0) ? "! " + 0.ToString() : "! " + ans.ToString()); } } } }