結果

問題 No.115 遠足のおやつ
ユーザー simansiman
提出日時 2016-03-24 00:31:12
言語 Ruby
(3.3.0)
結果
WA  
(最新)
AC  
(最初)
実行時間 -
コード長 939 bytes
コンパイル時間 196 ms
コンパイル使用メモリ 7,552 KB
実行使用メモリ 14,848 KB
最終ジャッジ日時 2024-10-09 13:47:27
合計ジャッジ時間 7,674 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 89 ms
12,288 KB
testcase_01 AC 99 ms
12,544 KB
testcase_02 WA -
testcase_03 AC 96 ms
12,416 KB
testcase_04 AC 270 ms
13,952 KB
testcase_05 AC 90 ms
12,416 KB
testcase_06 AC 91 ms
12,160 KB
testcase_07 AC 93 ms
12,160 KB
testcase_08 AC 93 ms
12,160 KB
testcase_09 AC 94 ms
12,160 KB
testcase_10 AC 95 ms
12,288 KB
testcase_11 AC 90 ms
12,288 KB
testcase_12 AC 91 ms
12,416 KB
testcase_13 AC 89 ms
12,288 KB
testcase_14 AC 99 ms
12,288 KB
testcase_15 AC 190 ms
12,928 KB
testcase_16 AC 244 ms
13,696 KB
testcase_17 AC 134 ms
12,544 KB
testcase_18 AC 91 ms
12,416 KB
testcase_19 AC 99 ms
12,288 KB
testcase_20 AC 96 ms
12,288 KB
testcase_21 AC 89 ms
12,160 KB
testcase_22 AC 146 ms
12,672 KB
testcase_23 AC 97 ms
12,416 KB
testcase_24 AC 145 ms
13,184 KB
testcase_25 AC 130 ms
12,416 KB
testcase_26 AC 102 ms
12,416 KB
testcase_27 AC 117 ms
12,672 KB
testcase_28 AC 108 ms
12,544 KB
testcase_29 AC 113 ms
12,288 KB
testcase_30 AC 144 ms
12,800 KB
testcase_31 AC 106 ms
12,416 KB
testcase_32 AC 208 ms
12,928 KB
testcase_33 AC 94 ms
12,160 KB
testcase_34 AC 265 ms
14,080 KB
testcase_35 AC 124 ms
12,672 KB
testcase_36 AC 134 ms
13,824 KB
testcase_37 AC 209 ms
12,928 KB
testcase_38 AC 418 ms
14,848 KB
testcase_39 AC 423 ms
14,848 KB
testcase_40 AC 92 ms
12,288 KB
testcase_41 AC 91 ms
12,416 KB
testcase_42 AC 93 ms
12,160 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
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