## Problem Description and Formulation

The berry farmer has 300 acres of land to grow blueberries and raspberries. The goal is to maximize profit given the constraints on fertilizer cost, picking hours, and land availability.

Let's denote:
- \(B\) as the number of acres for blueberries
- \(R\) as the number of acres for raspberries

## Constraints:

1. **Land Constraint**: The farmer has 300 acres available.
\[ B + R \leq 300 \]

2. **Fertilizer Cost Constraint**: Each acre of blueberries costs $60, and each acre of raspberries costs $40. The farmer has $20,000 available.
\[ 60B + 40R \leq 20000 \]

3. **Picking Hours Constraint**: Blueberries take 3 hours of picking per acre, and raspberries take 4 hours per acre. The farmer has 400 hours available.
\[ 3B + 4R \leq 400 \]

4. **Non-Negativity Constraint**: The number of acres cannot be negative.
\[ B \geq 0, R \geq 0 \]

## Objective Function:

The profit per acre of blueberries is $200, and the profit per acre of raspberries is $250. The goal is to maximize total profit \(P\).
\[ P = 200B + 250R \]

## Gurobi Code

```python
import gurobi

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

    # Define variables
    B = model.addVar(lb=0, name="Blueberries acres")
    R = model.addVar(lb=0, name="Raspberries acres")

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

    # Land constraint
    model.addConstr(B + R <= 300, name="Land_Constraint")

    # Fertilizer cost constraint
    model.addConstr(60*B + 40*R <= 20000, name="Fertilizer_Constraint")

    # Picking hours constraint
    model.addConstr(3*B + 4*R <= 400, name="Picking_Hours_Constraint")

    # Optimize
    model.optimize()

    # Print solution
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal acres of blueberries: {B.varValue}")
        print(f"Optimal acres of raspberries: {R.varValue}")
        print(f"Max profit: {model.objVal}")
    else:
        print("No optimal solution found.")

if __name__ == "__main__":
    solve_berry_farming_problem()
```