## Problem Description and Formulation

George wants to plant coconut trees and banana trees on 200 acres of land to maximize profit. The costs, profits, and labor requirements for each type of tree are given. The goal is to determine how many acres of each tree George should plant given a budget of $15,000 and 750 days of labor.

Let's define the variables:
- \(C\): acres of coconut trees
- \(B\): acres of banana trees

The objective is to maximize profit. The profit per acre for coconut trees is $400, and for banana trees, it is $350.

## Objective Function
Maximize: \(400C + 350B\)

## Constraints
1. **Land Constraint**: George has 200 acres of land.
\[C + B \leq 200\]

2. **Budget Constraint**: The cost to maintain coconut trees is $200 per acre, and banana trees is $150 per acre, with a total budget of $15,000.
\[200C + 150B \leq 15,000\]

3. **Labor Constraint**: Coconut trees require 5 days of labor per acre, and banana trees require 4 days of labor per acre, with 750 days of labor available.
\[5C + 4B \leq 750\]

4. **Non-Negativity Constraint**: Acres of trees cannot be negative.
\[C \geq 0, B \geq 0\]

## Gurobi Code

```python
import gurobi

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

    # Define variables
    C = model.addVar(lb=0, name="Coconut_Trees")  # Acres of coconut trees
    B = model.addVar(lb=0, name="Banana_Trees")  # Acres of banana trees

    # Objective function: Maximize profit
    model.setObjective(400*C + 350*B, gurobi.GRB.MAXIMIZE)

    # Constraints
    model.addConstr(C + B <= 200, name="Land_Constraint")
    model.addConstr(200*C + 150*B <= 15000, name="Budget_Constraint")
    model.addConstr(5*C + 4*B <= 750, name="Labor_Constraint")

    # Optimize
    model.optimize()

    # Print solution
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal acres of coconut trees: {C.varValue}")
        print(f"Optimal acres of banana trees: {B.varValue}")
        print(f"Maximal profit: {model.objVal}")
    else:
        print("The problem is infeasible")

solve_optimization_problem()
```