input: Write a function to calculate the maximum possible revenue from the items with given weights and values using the Knapsack algorithm. The function should take in the list of weights, the list of values, and the number of items, and return the maximum possible revenue.
  assert knapsack([2, 1, 3], [4, 2, 3], 3)==7
  assert knapsack([1, 2, 3], [6, 10, 12], 3)==22
  assert knapsack([], [], 0)==0
  assert knapsack([1, 2, 3], [2, 2, 2], 3)==4
  assert knapsack([1, 3, 4, 5], [1, 4, 5, 7], 4)==9
output: def knapsack(weights, values, n):
      capacity = sum(weights)
      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]] + values[i])
      
      return max(dp)