結果

問題 No.246 質問と回答
ユーザー h_noson
提出日時 2015-07-17 23:36:49
言語 Haskell
(9.10.1)
結果
AC  
実行時間 51 ms / 2,000 ms
コード長 457 bytes
コンパイル時間 7,773 ms
コンパイル使用メモリ 171,136 KB
実行使用メモリ 25,220 KB
平均クエリ数 30.87
最終ジャッジ日時 2024-07-16 19:46:01
合計ジャッジ時間 10,826 ms
ジャッジサーバーID
(参考情報)
judge3 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 30
権限があれば一括ダウンロードができます
コンパイルメッセージ
Loaded package environment from /home/judge/.ghc/x86_64-linux-9.8.2/environments/default
[1 of 2] Compiling Main             ( Main.hs, Main.o )
[2 of 2] Linking a.out

ソースコード

diff #

import System.IO

solve :: Int -> Int -> IO ()
solve l r = do
    if (l >= r)
        then do
            putStrLn $ "! " ++ show l
            hFlush stdout
        else do
            let mid = (l + r + 1) `div` 2
            putStrLn $ "? " ++ show mid
            hFlush stdout
            res <- readLn :: IO Int
            if (res == 1)
                then solve mid r
                else solve l (mid-1)

main :: IO ()
main = do
    solve 0 (10^9)
0