結果

問題 No.153 石の山
ユーザー 6soukiti29
提出日時 2017-09-18 18:31:12
言語 Nim
(2.2.0)
結果
AC  
実行時間 2 ms / 5,000 ms
コード長 766 bytes
コンパイル時間 2,944 ms
コンパイル使用メモリ 66,692 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-06-30 03:12:56
合計ジャッジ時間 3,965 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 27
権限があれば一括ダウンロードができます
コンパイルメッセージ
/home/judge/data/code/Main.nim(1, 8) Warning: imported and not used: 'sequtils' [UnusedImport]

ソースコード

diff #

import sequtils,strutils
var
    N = stdin.readline.parseInt
    memo : array[101, int]
    flag : array[101, bool]
flag[1] = true
proc grundy(x : int) : int =
    if flag[x]:
        return memo[x]
    var
        g : array[7, bool]
        a : int
    if (x and 1) == 0 and x >= 2:
        g[0] = true
    if (x and 1) == 1 and x >= 3:
        g[grundy(x div 2) xor grundy(x div 2 + 1)] = true
    if x mod 3 == 0 and x >= 3:
        g[grundy(x div 3)] = true
    if x mod 3 == 1 and x >= 4:
        g[grundy(x div 3 + 1)] = true
    if x mod 3 == 2 and x >= 5:
        g[grundy(x div 3)] = true
    for i in 0..6:
        if g[i] == false:
            memo[x] = i
            flag[x] = true
            return i

if grundy(N) == 0:
    echo "B"
else:
    echo "A"
0