input: Write a function to calculate the maximum possible revenue from the items with given weights and values using the knapsack problem approach. If the given arrays are empty then return 0.
  
  def knapsack(weights, values):
      n = len(weights)
      W = 5
      if n == 0:
          return 0
      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])==7
  assert knapsack([5, 3, 4], [6, 5, 7])==9
  assert knapsack([1, 2, 3], [1, 2, 3])==5
  assert knapsack([], [])==0
  
output: 
  def knapsack(weights, values):
      n = len(weights)
      W = 5
      if n == 0:
          return 0
      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]
  