input: Write a function to calculate the maximum possible revenue from the items with given weights and values using a knapsack approach. The items have weights and values, and the function should determine the maximum revenue that can be achieved if the total weight capacity of the knapsack is 5.
  
  def knapsack(weights, values, n):
      W = 5
      K = [[0 for x in range(W+1)] for x in range(n+1)]
      
      for i in range(n+1):
          for w in range(W+1):
              if i==0 or w==0:
                  K[i][w] = 0
              elif weights[i-1] <= w:
                  K[i][w] = max(values[i-1] + K[i-1][w-weights[i-1]],  K[i-1][w])
              else:
                  K[i][w] = K[i-1][w]
  
      return K[n][W]
  
  assert knapsack([2, 1, 3], [4, 2, 3], 3) == 7
  assert knapsack([1, 2, 3], [6, 10, 12], 3) == 22
  assert knapsack([5, 4, 6, 3], [10, 40, 30, 50], 4) == 90
  assert knapsack([1, 3, 4, 5], [1, 4, 5, 7], 4) == 9
  assert knapsack([], [], 0) == 0
output: def knapsack(weights, values, n):
      W = 5
      K = [[0 for x in range(W+1)] for x in range(n+1)]
      
      for i in range(n+1):
          for w in range(W+1):
              if i==0 or w==0:
                  K[i][w] = 0
              elif weights[i-1] <= w:
                  K[i][w] = max(values[i-1] + K[i-1][w-weights[i-1]],  K[i-1][w])
              else:
                  K[i][w] = K[i-1][w]
  
      return K[n][W]