結果

問題 No.115 遠足のおやつ
ユーザー siman
提出日時 2016-03-24 00:31:12
言語 Ruby
(3.4.1)
結果
WA  
(最新)
AC  
(最初)
実行時間 -
コード長 939 bytes
コンパイル時間 196 ms
コンパイル使用メモリ 7,552 KB
実行使用メモリ 14,848 KB
最終ジャッジ日時 2024-10-09 13:47:27
合計ジャッジ時間 7,674 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 39 WA * 1
権限があれば一括ダウンロードができます
コンパイルメッセージ
Main.rb:38: warning: ambiguous first argument; put parentheses or a space even after `-' operator
Syntax OK

ソースコード

diff #

class Node
  attr_reader :value, :list

  def initialize(value = -1, list = [])
    @list = list.sort
    @value = value
  end
end

class Yukicoder
  def initialize
    n, d, k = gets.chomp.split.map(&:to_i)

    dp = Array.new(k+1){ Array.new(d+1){ Node.new }}
    dp[0][0] = Node.new(0, [])

    1.upto(k) do |i|
      d.downto(0) do |j|
        if dp[i-1][j].value >= 0
          i.upto(n) do |k|
            next if dp[i-1][j].list.include?(k)

            value = dp[i-1][j].value + k

            next if value > d

            if dp[i][value].value == -1
              dp[i][value] = Node.new(value, dp[i-1][j].list + [k])
            elsif (dp[i][value].list <=> dp[i-1][j].list) > 0
              dp[i][value] = Node.new(value, dp[i-1][j].list + [k])
            end
          end
        end
      end
    end

    if dp[k][d].value == -1
      puts -1
    else
      puts dp[k][d].list.join(' ')
    end
  end
end

Yukicoder.new
0