## Problem Description and Formulation

The problem is a classic example of a linear programming problem. The goal is to maximize the profit of a costume store by determining the optimal number of policeman and fireman costumes to stock, given certain constraints.

### Decision Variables

* \(x\): Number of policeman costumes to stock
* \(y\): Number of fireman costumes to stock

### Objective Function

The objective is to maximize the total profit. Given that the profit per policeman costume is $8 and per fireman costume is $10, the objective function can be formulated as:

\[ \text{Maximize:} \quad 8x + 10y \]

### Constraints

1. **Budget Constraint**: The store has a budget of $3000. Each policeman costume costs $10 and each fireman costume costs $15. Therefore, the budget constraint can be written as:

\[ 10x + 15y \leq 3000 \]

2. **Demand Constraint**: The monthly demand for both costumes will not exceed 280. Therefore:

\[ x + y \leq 280 \]

3. **Non-Negativity Constraints**: The number of costumes cannot be negative:

\[ x \geq 0, \quad y \geq 0 \]

## Gurobi Code

Here is the Gurobi code in Python that captures the problem description and provides a solution:

```python
import gurobipy as gp

# Create a new model
model = gp.Model("Costume_Optimization")

# Decision variables
x = model.addVar(lb=0, name="Policeman_Costumes")
y = model.addVar(lb=0, name="Fireman_Costumes")

# Objective function: Maximize profit
model.setObjective(8*x + 10*y, gp.GRB.MAXIMIZE)

# Budget constraint
model.addConstraint(10*x + 15*y <= 3000)

# Demand constraint
model.addConstraint(x + y <= 280)

# Solve the model
model.optimize()

# Print the solution
if model.status == gp.GRB.OPTIMAL:
    print(f"Optimal Solution: Policeman Costumes = {x.varValue}, Fireman Costumes = {y.varValue}")
    print(f"Max Profit: ${model.objVal}")
else:
    print("The model is infeasible.")
```