```python
import gurobipy as gp
from gurobipy import GRB

# Create a new model
m = gp.Model("optimization_problem")

# Create variables
cantaloupes = m.addVar(vtype=GRB.INTEGER, name="cantaloupes")
oreos = m.addVar(vtype=GRB.INTEGER, name="oreos")
apple_pies = m.addVar(vtype=GRB.INTEGER, name="apple_pies")
kiwis = m.addVar(vtype=GRB.CONTINUOUS, name="kiwis")
instant_ramen = m.addVar(vtype=GRB.CONTINUOUS, name="bowls_of_instant_ramen")
rotisserie_chickens = m.addVar(vtype=GRB.INTEGER, name="rotisserie_chickens")

# Set objective function
m.setObjective(6.3 * cantaloupes**2 + 3.48 * cantaloupes * oreos + 6.25 * cantaloupes * instant_ramen + 4.34 * cantaloupes * rotisserie_chickens + 1.08 * oreos * apple_pies + 7.63 * oreos * kiwis + 6.66 * apple_pies**2 + 6.5 * apple_pies * kiwis + 7.97 * apple_pies * rotisserie_chickens + 4.5 * kiwis**2 + 7.24 * kiwis * rotisserie_chickens + 5.51 * instant_ramen * rotisserie_chickens + 7.25 * cantaloupes + 5.43 * apple_pies + 3.49 * kiwis + 8.39 * instant_ramen + 4.79 * rotisserie_chickens, GRB.MAXIMIZE)

# Add constraints
m.addConstr(6 * cantaloupes + 9 * oreos + 11 * apple_pies + 5 * kiwis + 10 * instant_ramen + 9 * rotisserie_chickens <= 381, "r0_dollar_cost")
m.addConstr(9 * cantaloupes + 7 * oreos + 11 * apple_pies + 9 * kiwis + 2 * instant_ramen + 4 * rotisserie_chickens <= 378, "r1_sourness_index")
m.addConstr(8 * cantaloupes + 5 * oreos + 8 * apple_pies + 4 * kiwis + 6 * instant_ramen + 11 * rotisserie_chickens <= 249, "r2_carbohydrates")
m.addConstr(8 * cantaloupes + 9 * oreos + 7 * apple_pies + 11 * kiwis + 7 * instant_ramen + 3 * rotisserie_chickens <= 168, "r3_fat")

m.addConstr(6 * cantaloupes**2 + 9 * rotisserie_chickens**2 >= 40, "min_spend_cantaloupes_rotisserie")
m.addConstr(11 * apple_pies + 10 * instant_ramen >= 45, "min_spend_apple_pies_ramen")
m.addConstr(10 * instant_ramen + 9 * rotisserie_chickens >= 33, "min_spend_ramen_rotisserie")
m.addConstr(11 * apple_pies + 5 * kiwis + 10 * instant_ramen >= 59, "min_spend_apple_pies_kiwis_ramen")
m.addConstr(6 * cantaloupes + 9 * oreos + 10 * instant_ramen >= 59, "min_spend_cantaloupes_oreos_ramen")
m.addConstr(11 * apple_pies**2 + 5 * kiwis**2 + 10 * instant_ramen**2 >= 59, "min_spend_sq_apple_pies_kiwis_ramen")
m.addConstr(6 * cantaloupes**2 + 9 * oreos**2 + 10 * instant_ramen**2 >= 59, "min_spend_sq_cantaloupes_oreos_ramen")

# ... (Add all other constraints similarly)

# Optimize model
m.optimize()

# Print results
if m.status == GRB.OPTIMAL:
    print('Obj: %g' % m.objVal)
    for v in m.getVars():
        print('%s %g' % (v.varName, v.x))
elif m.status == GRB.INFEASIBLE:
    print('Optimization problem is infeasible.')
else:
    print('Optimization ended with status %d' % m.status)
```