Submission #608222


Source Code Expand

P = Struct.new(:v, :w)

N, W = gets.split.map(&:to_i)
List = []
N.times{
	List.push P.new(*gets.split.map(&:to_i))
}

def solve1
	def solve(i, val, rest_w)
		if i == List.size
			val
		elsif List[i].w > rest_w
			solve i+1, val, rest_w
		else
			[solve(i+1, val+List[i].v, rest_w-List[i].w), solve(i+1, val, rest_w)].max
		end
	end
	puts solve(0, 0, W)
end

def solve2
	a = Array.new(W+1, 0)
	b = Array.new(W+1, 0)
	(N-1).downto(0){|i|
		(W+1).times{|j|
			if j < List[i].w
				a[j] = b[j]
			else
				a[j] = [b[j], b[j-List[i].w] + List[i].v].max
			end
		}
		b = a
		a = Array.new(W+1, 0)
	}
	puts b[W]
end

def solve3
	$memo = Array.new(N+1){ {} }
	def solve(i, val, rest_w)
		if $memo[i][val] && $memo[i][val] > rest_w
			rest_w
		else
			$memo[i][val] = if i == List.size
				rest_w
			elsif List[i].w > rest_w
				solve i+1, val, rest_w
			else
				[solve(i+1, val+List[i].v, rest_w-List[i].w), solve(i+1, val, rest_w)].max
			end
		end
	end
	solve 0, 0, W
	puts $memo[N].keys.max
end

if List.map(&:w).max <= 1000
	solve2
elsif List.map(&:v).max <= 1000
	solve3
else
	solve1
end

Submission Info

Submission Time
Task D - ナップサック問題
User kura07
Language Ruby (2.1.5p273)
Score 34
Code Size 1148 Byte
Status TLE
Exec Time 2042 ms
Memory 50028 KiB

Judge Result

Set Name Sample Subtask1 Subtask2 Subtask3
Score / Max Score 0 / 0 34 / 34 0 / 33 0 / 33
Status
AC × 4
AC × 19
AC × 5
TLE × 12
AC × 6
TLE × 8
Set Name Test Cases
Sample subtask00_sample_1.txt, subtask00_sample_2.txt, subtask00_sample_3.txt, subtask00_sample_4.txt
Subtask1 subtask01_0.txt, subtask01_1.txt, subtask01_10.txt, subtask01_11.txt, subtask01_12.txt, subtask01_13.txt, subtask01_14.txt, subtask01_2.txt, subtask01_3.txt, subtask01_4.txt, subtask01_5.txt, subtask01_6.txt, subtask01_7.txt, subtask01_8.txt, subtask01_9.txt, subtask00_sample_1.txt, subtask00_sample_2.txt, subtask00_sample_3.txt, subtask00_sample_4.txt
Subtask2 subtask02_0.txt, subtask02_1.txt, subtask02_10.txt, subtask02_11.txt, subtask02_12.txt, subtask02_13.txt, subtask02_14.txt, subtask02_2.txt, subtask02_3.txt, subtask02_4.txt, subtask02_5.txt, subtask02_6.txt, subtask02_7.txt, subtask02_8.txt, subtask02_9.txt, subtask00_sample_1.txt, subtask00_sample_3.txt
Subtask3 subtask03_0.txt, subtask03_1.txt, subtask03_10.txt, subtask03_11.txt, subtask03_2.txt, subtask03_3.txt, subtask03_4.txt, subtask03_5.txt, subtask03_6.txt, subtask03_7.txt, subtask03_8.txt, subtask03_9.txt, subtask00_sample_1.txt, subtask00_sample_4.txt
Case Name Status Exec Time Memory
subtask00_sample_1.txt AC 61 ms 5144 KiB
subtask00_sample_2.txt AC 67 ms 5096 KiB
subtask00_sample_3.txt AC 85 ms 5352 KiB
subtask00_sample_4.txt AC 56 ms 5144 KiB
subtask01_0.txt AC 58 ms 5100 KiB
subtask01_1.txt AC 57 ms 5096 KiB
subtask01_10.txt AC 58 ms 5096 KiB
subtask01_11.txt AC 54 ms 5096 KiB
subtask01_12.txt AC 58 ms 5100 KiB
subtask01_13.txt AC 54 ms 5100 KiB
subtask01_14.txt AC 55 ms 5100 KiB
subtask01_2.txt AC 54 ms 5100 KiB
subtask01_3.txt AC 54 ms 5144 KiB
subtask01_4.txt AC 57 ms 5100 KiB
subtask01_5.txt AC 54 ms 5096 KiB
subtask01_6.txt AC 54 ms 5100 KiB
subtask01_7.txt AC 55 ms 5100 KiB
subtask01_8.txt AC 63 ms 5144 KiB
subtask01_9.txt AC 54 ms 5092 KiB
subtask02_0.txt TLE 2035 ms 22752 KiB
subtask02_1.txt TLE 2037 ms 21952 KiB
subtask02_10.txt TLE 2037 ms 21992 KiB
subtask02_11.txt TLE 2037 ms 21680 KiB
subtask02_12.txt TLE 2041 ms 22380 KiB
subtask02_13.txt AC 98 ms 5224 KiB
subtask02_14.txt AC 1291 ms 15904 KiB
subtask02_2.txt TLE 2036 ms 22252 KiB
subtask02_3.txt TLE 2038 ms 21852 KiB
subtask02_4.txt TLE 2038 ms 22632 KiB
subtask02_5.txt AC 1163 ms 14572 KiB
subtask02_6.txt TLE 2035 ms 22352 KiB
subtask02_7.txt TLE 2040 ms 22376 KiB
subtask02_8.txt TLE 2037 ms 21996 KiB
subtask02_9.txt TLE 2039 ms 22760 KiB
subtask03_0.txt AC 383 ms 19180 KiB
subtask03_1.txt TLE 2042 ms 47828 KiB
subtask03_10.txt AC 214 ms 14492 KiB
subtask03_11.txt AC 66 ms 5228 KiB
subtask03_2.txt TLE 2041 ms 43964 KiB
subtask03_3.txt TLE 2039 ms 47592 KiB
subtask03_4.txt TLE 2038 ms 50028 KiB
subtask03_5.txt TLE 2040 ms 43724 KiB
subtask03_6.txt AC 254 ms 16492 KiB
subtask03_7.txt TLE 2039 ms 35648 KiB
subtask03_8.txt TLE 2039 ms 35644 KiB
subtask03_9.txt TLE 2038 ms 28648 KiB