## Problem Description and Formulation

The tea company produces three types of tea: low, medium, and high quality. Each type of tea requires a certain amount of rare additives and tea leaves. The company has limited supplies of these ingredients and wants to maximize its profit by determining the optimal production levels for each type of tea.

Let's define the decision variables:
- \(L\): Number of low-quality teas produced
- \(M\): Number of medium-quality teas produced
- \(H\): Number of high-quality teas produced

The objective is to maximize profit \(P = 1L + 3M + 5H\).

Subject to the constraints:
1. Rare additives: \(2L + 3M + 4H \leq 200\)
2. Tea leaves: \(6L + 7M + 8H \leq 400\)
3. Non-negativity: \(L \geq 0, M \geq 0, H \geq 0\)

## Gurobi Code

```python
import gurobipy as gp

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

# Define the decision variables
L = model.addVar(lb=0, name="LowQualityTea")
M = model.addVar(lb=0, name="MediumQualityTea")
H = model.addVar(lb=0, name="HighQualityTea")

# Define the objective function
model.setObjective(L + 3 * M + 5 * H, gp.GRB.MAXIMIZE)

# Add constraints
model.addConstr(2 * L + 3 * M + 4 * H <= 200, name="RareAdditives")
model.addConstr(6 * L + 7 * M + 8 * H <= 400, name="TeaLeaves")

# Solve the model
model.optimize()

# Print the results
if model.status == gp.GRB.OPTIMAL:
    print("Optimal Solution:")
    print(f"Low Quality Tea: {L.varValue}")
    print(f"Medium Quality Tea: {M.varValue}")
    print(f"High Quality Tea: {H.varValue}")
    print(f"Max Profit: {model.objVal}")
else:
    print("The model is infeasible")
```