编辑代码

def coin_collect(coins, weights, capacity):
    n = len(coins)
    dp = [0] * (capacity + 1)

    for i in range(n):
        for w in range(capacity, weights[i]-1, -1):
            dp[w] = max(dp[w], dp[w-weights[i]] + coins[i])

    return dp[capacity]