## Problem Description and Formulation

The florist has 40 acres to grow sunflowers and roses. The goal is to maximize profit given the constraints on acres and plant nutrition.

Let's define:
- \(x\) as the acres of sunflowers to be grown
- \(y\) as the acres of roses to be grown

The constraints are:
1. Acres constraint: \(x + y \leq 40\)
2. Plant nutrition constraint: \(5x + 8y \leq 230\)
3. Non-negativity constraint: \(x \geq 0, y \geq 0\)

The objective function to maximize profit is: \(200x + 375y\)

## Gurobi Code

```python
import gurobi

def solve_florist_problem():
    # Create a new model
    model = gurobi.Model()

    # Define variables
    x = model.addVar(lb=0, name="sunflowers_acres")
    y = model.addVar(lb=0, name="roses_acres")

    # Objective function: maximize profit
    model.setObjective(200*x + 375*y, gurobi.GRB.MAXIMIZE)

    # Acres constraint
    model.addConstr(x + y <= 40, name="acres_constraint")

    # Plant nutrition constraint
    model.addConstr(5*x + 8*y <= 230, name="nutrition_constraint")

    # Optimize
    model.optimize()

    # Print solution
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal acres of sunflowers: {x.varValue}")
        print(f"Optimal acres of roses: {y.varValue}")
        print(f"Maximal profit: {model.objVal}")
    else:
        print("The problem is infeasible")

solve_florist_problem()
```