結果

問題 No.257 N言っちゃダメゲーム (3)
ユーザー vain0vain0
提出日時 2015-07-31 23:26:33
言語 Haskell
(9.8.2)
結果
AC  
実行時間 51 ms / 2,000 ms
コード長 754 bytes
コンパイル時間 4,551 ms
コンパイル使用メモリ 160,004 KB
実行使用メモリ 24,372 KB
平均クエリ数 3.70
最終ジャッジ日時 2023-09-23 21:08:20
合計ジャッジ時間 7,971 ms
ジャッジサーバーID
(参考情報)
judge11 / judge12
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 50 ms
24,276 KB
testcase_01 AC 47 ms
23,568 KB
testcase_02 AC 49 ms
23,460 KB
testcase_03 AC 49 ms
24,096 KB
testcase_04 AC 49 ms
24,372 KB
testcase_05 AC 48 ms
24,072 KB
testcase_06 AC 49 ms
24,312 KB
testcase_07 AC 49 ms
23,664 KB
testcase_08 AC 48 ms
23,676 KB
testcase_09 AC 47 ms
24,096 KB
testcase_10 AC 50 ms
23,436 KB
testcase_11 AC 46 ms
24,336 KB
testcase_12 AC 45 ms
23,700 KB
testcase_13 AC 49 ms
24,036 KB
testcase_14 AC 50 ms
23,568 KB
testcase_15 AC 48 ms
23,856 KB
testcase_16 AC 46 ms
23,460 KB
testcase_17 AC 47 ms
23,676 KB
testcase_18 AC 50 ms
24,348 KB
testcase_19 AC 49 ms
23,700 KB
testcase_20 AC 51 ms
23,736 KB
testcase_21 AC 51 ms
24,096 KB
testcase_22 AC 50 ms
23,724 KB
testcase_23 AC 47 ms
23,460 KB
testcase_24 AC 50 ms
23,448 KB
testcase_25 AC 51 ms
23,700 KB
testcase_26 AC 51 ms
24,024 KB
testcase_27 AC 49 ms
23,700 KB
testcase_28 AC 46 ms
24,060 KB
testcase_29 AC 51 ms
23,460 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
Loaded package environment from /home/judge/.ghc/x86_64-linux-9.6.1/environments/default
[1 of 2] Compiling Main             ( Main.hs, Main.o )

Main.hs:15:1: warning: [GHC-94817] [-Wtabs]
    Tab character found here, and in 23 further locations.
    Suggested fix: Please use spaces instead.
   |
15 |         putStrLn s
   | ^^^^^^^^
[2 of 2] Linking a.out

ソースコード

diff #

import qualified Data.List as List
import qualified Data.Map as Map
import Data.Char
import Data.Array
import Data.Maybe
import Control.Monad
import Control.Applicative
import Text.Printf
import System.IO

readInt :: String -> Int
readInt = read

printFlush s = do
	putStrLn s
	hFlush stdout

grundy m (n, k)
	| m >= n     = 0
	| otherwise  = (n - 1 - m) `mod` (k + 1)

turn m (n, k) = do
	when (m < n) $ do
		let g = grundy m (n, k)
		printFlush $ show (m + (if g == 0 then 1 else g)) -- g == 0 なら時間切れを狙う
		response (n, k)

response (n, k) = do
	m <- fmap readInt getLine
	turn m (n, k)

main = do
	[n, k] <- fmap (map readInt . words) getLine
	if grundy 0 (n, k) == 0 then
		do	printFlush "0"
			response (n, k)
	else
		turn 0 (n, k)
0