結果

問題 No.115 遠足のおやつ
ユーザー mai
提出日時 2017-04-13 20:59:17
言語 Ruby
(3.4.1)
結果
AC  
実行時間 1,083 ms / 5,000 ms
コード長 453 bytes
コンパイル時間 283 ms
コンパイル使用メモリ 8,192 KB
実行使用メモリ 31,616 KB
最終ジャッジ日時 2025-01-03 01:23:17
合計ジャッジ時間 8,701 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(101){Array.new(1111){Array.new(11)}}
def dfs(n,d,k)
    return d == 0 if k == 0
    return false if d <= 0
    return false if n <= 0
    
    return false if @memo[n][d][k]
    
    n.downto(1){|coin|
        if dfs(coin-1,d-coin,k-1)
            printf "%d ",coin
            return true
        end
    }
    @memo[n][d][k] = true
    return false
end

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