結果
問題 | No.246 質問と回答 |
ユーザー |
|
提出日時 | 2015-07-18 15:06:23 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 76 ms / 2,000 ms |
コード長 | 3,064 bytes |
コンパイル時間 | 888 ms |
コンパイル使用メモリ | 115,040 KB |
実行使用メモリ | 43,796 KB |
平均クエリ数 | 66.30 |
最終ジャッジ日時 | 2024-07-16 19:48:32 |
合計ジャッジ時間 | 4,808 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 30 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System;using System.Collections.Generic;using System.Linq;class Program{static void Main(){long answer = 500000000;long nowRange = answer / 2;long qCount = 100;while (nowRange > 0){LIB.IO.W("? " + answer.ToString());LIB.IO.WFLUSH();if (LIB.IO.R<int>() == 1){answer += nowRange;}else{answer -= nowRange;}nowRange >>= 1;qCount--;}answer -= qCount / 2;while(true){LIB.IO.W("? " + answer.ToString());LIB.IO.WFLUSH();if (LIB.IO.R<int>() == 1){answer++;}else{answer--;break;}}LIB.IO.W("! " + answer.ToString());LIB.IO.WFLUSH();}}namespace LIB{public class IO{private const int WMAX = 1000;private static string WSTRING = "";public static T R<T>(){return (T)(Convert.ChangeType(R(), typeof(T)));}public static T[] R<T>(char splitter = ' '){return R().Split(splitter).Select(v => UTILITY.PARSE<T>(v)).ToArray();}public static T[] R<T>(int length){T[] ret = new T[length];for (int i = 0; i < length; i++){ret[i] = R<T>();}return ret;}public static T[][] R<T>(int length, char splitter = ' '){T[][] ret = new T[length][];for (int i = 0; i < length; i++){ret[i] = R<T>(splitter);}return ret;}private static string R(){return Console.ReadLine();}public static void W(object value, bool addLineFeed = true){WSTRING += UTILITY.PARSE<string>(value);if (addLineFeed == true) { WSTRING += "\n"; }if (WSTRING.Count() >= WMAX) { WFLUSH(); }}public static void WFLUSH(){Console.Write(WSTRING);WSTRING = "";}}public class UTILITY{public static T PARSE<T>(object value){return (T)(Convert.ChangeType(value, typeof(T)));}}public class MEMO<Key, Result>{private Dictionary<Key, Result> results;public MEMO(){results = new Dictionary<Key, Result>();}public Result EXEC(Key key, Func<Key, Result> func){Result ret = default(Result);if (results.ContainsKey(key)){ret = results[key];}else{ret = func(key);results.Add(key, ret);}return ret;}}}