## Problem Description and Formulation

The problem is a linear programming optimization problem. The goal is to maximize profit given certain constraints on the acres of beans and pumpkins Eli can plant.

### Variables
- Let \(B\) be the number of acres planted with beans.
- Let \(P\) be the number of acres planted with pumpkins.

### Objective Function
The profit per acre of beans is $100, and the profit per acre of pumpkins is $110. The objective function to maximize profit (\(Z\)) is:
\[ Z = 100B + 110P \]

### Constraints
1. **Total Acres Constraint**: Eli has 100 acres available.
\[ B + P \leq 100 \]
2. **Minimum Acres Constraints**: He must grow a minimum of 5 acres of beans and 10 acres of pumpkins.
\[ B \geq 5 \]
\[ P \geq 10 \]
3. **Pumpkins to Beans Ratio Constraint**: Due to labor constraints, he can only plant at most 3 times the quantity of pumpkins as beans.
\[ P \leq 3B \]

## Gurobi Code

```python
import gurobi

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

    # Define variables
    B = model.addVar(lb=5, name="Beans")  # Minimum 5 acres of beans
    P = model.addVar(lb=10, name="Pumpkins")  # Minimum 10 acres of pumpkins

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

    # Constraints
    model.addConstr(B + P <= 100, name="Total_Acres")  # Total acres constraint
    model.addConstr(P <= 3 * B, name="Pumpkins_to_Beans_Ratio")  # Pumpkins to beans ratio constraint

    # Solve the model
    model.optimize()

    # Check if the model is optimized
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal solution found. Acres of beans: {B.varValue}, Acres of pumpkins: {P.varValue}")
        print(f"Maximum profit: ${100 * B.varValue + 110 * P.varValue}")
    else:
        print("The model is infeasible.")

solve_optimization_problem()
```