## Problem Description and Formulation

The problem is a classic example of a linear programming problem. The goal is to maximize the profit from selling two different coffee blends, Drummondville and Victoriaville, given the constraints on the available stock of arabica and robusta beans.

Let's define the decision variables:

* $x$: number of bags of Drummondville blend to produce
* $y$: number of bags of Victoriaville blend to produce

The objective function to maximize is the total profit:

* Profit from Drummondville blend: $5x$
* Profit from Victoriaville blend: $7y$
* Total profit: $5x + 7y$

The constraints are:

* Available stock of arabica beans: $600x + 375y \leq 24000$
* Available stock of robusta beans: $400x + 625y \leq 17000$
* Non-negativity constraints: $x \geq 0, y \geq 0$

## Gurobi Code

```python
import gurobi

# Create a new model
model = gurobi.Model()

# Define the decision variables
x = model.addVar(name="Drummondville", lb=0, ub=gurobi.GRB.INFINITY)
y = model.addVar(name="Victoriaville", lb=0, ub=gurobi.GRB.INFINITY)

# Define the objective function
model.setObjective(5 * x + 7 * y, gurobi.GRB.MAXIMIZE)

# Define the constraints
model.addConstr(600 * x + 375 * y <= 24000, name="Arabica_Constraint")
model.addConstr(400 * x + 625 * y <= 17000, name="Robusta_Constraint")

# Optimize the model
model.optimize()

# Print the solution
if model.status == gurobi.GRB.OPTIMAL:
    print("Optimal solution found.")
    print(f"Drummondville blend: {x.varValue} bags")
    print(f"Victoriaville blend: {y.varValue} bags")
    print(f"Max profit: ${model.objVal:.2f}")
else:
    print("No optimal solution found.")
```