結果

問題 No.115 遠足のおやつ
ユーザー mai
提出日時 2017-04-13 21:01:54
言語 Ruby
(3.4.1)
結果
AC  
実行時間 805 ms / 5,000 ms
コード長 444 bytes
コンパイル時間 235 ms
コンパイル使用メモリ 8,320 KB
実行使用メモリ 22,656 KB
最終ジャッジ日時 2025-01-03 01:23:29
合計ジャッジ時間 6,460 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 40
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

def scan; gets.split.map(&:to_i); end

n,d,k = scan

@memo=Array.new(11){Array.new(101){Array.new(1111)}}
def dfs(n,d,k)
    return d == 0 if k == 0
    return false if d <= 0
    return false if n <= 0
    
    n.downto(1){|coin|
        if !@memo[k-1][coin-1][d-coin] && dfs(coin-1,d-coin,k-1)
            printf "%d ",coin
            return true
        end
    }
    @memo[k][n][d] = true
    return false
end

puts "-1" unless dfs(n,d,k)
0