結果

問題 No.5003 物理好きクリッカー
ユーザー LeonardoneLeonardone
提出日時 2018-12-05 06:32:32
言語 Haskell
(9.8.2)
結果
AC  
実行時間 357 ms / 10,000 ms
コード長 1,433 bytes
コンパイル時間 4,808 ms
実行使用メモリ 21,948 KB
スコア 452,672
平均クエリ数 10000.00
最終ジャッジ日時 2021-07-19 08:43:53
合計ジャッジ時間 18,806 ms
ジャッジサーバーID
(参考情報)
judge15 / judge12
純コード判定しない問題か言語
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 357 ms
21,516 KB
testcase_01 AC 356 ms
21,876 KB
testcase_02 AC 343 ms
21,384 KB
testcase_03 AC 337 ms
21,372 KB
testcase_04 AC 334 ms
21,552 KB
testcase_05 AC 337 ms
21,852 KB
testcase_06 AC 352 ms
21,528 KB
testcase_07 AC 335 ms
21,900 KB
testcase_08 AC 336 ms
21,192 KB
testcase_09 AC 337 ms
21,936 KB
testcase_10 AC 351 ms
21,888 KB
testcase_11 AC 353 ms
21,372 KB
testcase_12 AC 344 ms
21,348 KB
testcase_13 AC 348 ms
21,516 KB
testcase_14 AC 344 ms
21,348 KB
testcase_15 AC 352 ms
21,516 KB
testcase_16 AC 342 ms
21,372 KB
testcase_17 AC 340 ms
21,528 KB
testcase_18 AC 354 ms
21,384 KB
testcase_19 AC 346 ms
21,852 KB
testcase_20 AC 340 ms
21,684 KB
testcase_21 AC 341 ms
21,360 KB
testcase_22 AC 338 ms
21,384 KB
testcase_23 AC 340 ms
21,540 KB
testcase_24 AC 338 ms
21,924 KB
testcase_25 AC 341 ms
21,384 KB
testcase_26 AC 336 ms
21,204 KB
testcase_27 AC 356 ms
21,684 KB
testcase_28 AC 356 ms
21,684 KB
testcase_29 AC 354 ms
21,552 KB
testcase_30 AC 348 ms
21,876 KB
testcase_31 AC 344 ms
21,504 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
Loaded package environment from /root/.ghc/x86_64-linux-8.10.4/environments/default
[1 of 1] Compiling Main             ( Main.hs, Main.o )
Linking a.out ...

ソースコード

diff #

-- Try yukicoder
-- author: Leonardone @ NEETSDKASU

import System.IO (hFlush, stdout)



comm s = do
    putStrLn s
    hFlush stdout
    getLine
    return ()



main = do
    n <- readLn
    s <- getLine
    mapM_ comm $ play n s



-- (名前,所有数,現在生産性,強化回数,次回購入価格,次回強化価格)
items =
    [ ("click",    1,     1, 0,        0,        15)
    , ("hand",     0,     1, 0,      150,      1500)
    , ("lily",     0,    10, 0,     2000,     20000)
    , ("factory",  0,   120, 0,    30000,    300000)
    , ("casino",   0,  2000, 0,   600000,   6000000)
    , ("grimoire", 0, 25000, 0, 10000000, 100000000)
    ]



command (cmd, _, _, _, _) = cmd
product (_, prd, _, _, _) = prd
updated (_, _, upd, _, _) = upd
buyPrice (_, _, _, buy, _) = buy
updPrice (_, _, _, _, upc) = upc



play n s = game n s items 0 0 False



game _ [] _ _ _ _= []
game turn es@(s:ss) items money fever sale =
    cmd : game (turn-1) ss items2 money2 fever2 sale2
    where
        (cmd, items2, money1) = compute es items money fever sale
        money2 = money1 + calcBonus s money1
        fever2 = updateFever s fever
        sale2 = isSale s




calcBonus s money
    | s == 'B'  = (money + 99) `div` 100
    | otherwise = 0



updateFever s fever
    | s == 'F'  = 20
    | fever > 0 = fever - 1
    | otherwise = 0



isSale = (== 'S')



compute es items money fever sale =
    ("click", items, money)


0