結果

問題 No.458 異なる素数の和
コンテスト
ユーザー suppy193
提出日時 2017-02-01 14:04:01
言語 Ruby
(4.0.2)
コンパイル:
ruby -w -c _filename_
実行:
ruby _filename_
結果
TLE  
実行時間 -
コード長 587 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 84 ms
コンパイル使用メモリ 9,088 KB
実行使用メモリ 91,976 KB
最終ジャッジ日時 2026-05-29 22:32:59
合計ジャッジ時間 7,383 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge4_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample -- * 3
other AC * 9 TLE * 3 -- * 16
権限があれば一括ダウンロードができます
コンパイルメッセージ
Main.rb:33: warning: ambiguous first argument; put parentheses or a space even after `-` operator
Syntax OK

ソースコード

diff #
raw source code

require 'prime'

n = gets.strip.to_i

primes = []
primes << 2
i = 3
while i < n
	primes << i if i.prime?
	i += 2
end
# p primes.length

@memo = Hash.new(0)
@memo_next = Hash.new(0)
primes.each do |prime|
	@memo = @memo_next.clone
	@memo.each do |k, v|
		if k != n && k + prime > n
			@memo_next.delete(k)
			next	
		end
		next if k + prime != n && k + 2 * prime > n
		@memo_next[k + prime] = [@memo[k + prime], v + 1].max
		#print "#{prime} #{@memo_next}\n"
	end
	@memo_next[prime] = [1, @memo[prime]].max
	#@memo = @memo_next
end
if @memo_next.key?(n)
	p @memo_next[n]
else
	puts -1
end
0