## Problem Description and Formulation

The gardener has a 100-acre farm and wants to maximize profit by growing beans and peas. The profit per acre of beans is $200, and the profit per acre of peas is $250. However, both crops require bug repellant: 12 liters per acre of beans and 15 liters per acre of peas. The gardener has 1350 liters of bug repellant available.

## Decision Variables

Let \(B\) be the number of acres of beans and \(P\) be the number of acres of peas.

## Objective Function

The objective is to maximize profit: \(200B + 250P\).

## Constraints

1. **Land Constraint**: The total acres used for beans and peas cannot exceed 100 acres: \(B + P \leq 100\).
2. **Bug Repellant Constraint**: The total liters of bug repellant used cannot exceed 1350 liters: \(12B + 15P \leq 1350\).
3. **Non-Negativity Constraints**: The acres of beans and peas cannot be negative: \(B \geq 0, P \geq 0\).

## Gurobi Code

```python
import gurobi

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

    # Define decision variables
    B = model.addVar(lb=0, name="Beans_Acres")
    P = model.addVar(lb=0, name="Peas_Acres")

    # Objective function: Maximize profit
    model.setObjective(200*B + 250*P, gurobi.GRB.MAXIMIZE)

    # Constraints
    model.addConstr(B + P <= 100, name="Land_Constraint")
    model.addConstr(12*B + 15*P <= 1350, name="Bug_Repellant_Constraint")

    # Optimize
    model.optimize()

    # Print solution
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal acres of beans: {B.varValue}")
        print(f"Optimal acres of peas: {P.varValue}")
        print(f"Max Profit: ${200*B.varValue + 250*P.varValue}")
    else:
        print("The problem is infeasible")

solve_gardening_problem()
```