python 代码
N, V = tuple(map(int, raw_input().split()))
v = [0]*N
w = [0]*N
for i in range(N):
tmp = raw_input()
wi, vi = tuple(map(int, tmp.split()))
v[i] = vi
w[i] = wi
dp = [0]*(V+1)
for i in range(N):
for j in range(V, w[i]-1, -1):
dp[j] = max(dp[j], dp[j-w[i]]+v[i])
print dp[V]