## Problem Description and Formulation

The problem is a linear programming optimization problem. The goal is to maximize profit given certain constraints on the number of lenses and tripods sold, their costs, and the profits per unit.

### Variables
- \(L\): Number of lenses sold
- \(T\): Number of tripods sold

### Objective Function
Maximize profit \(P = 200L + 150T\)

### Constraints
1. Budget constraint: \(400L + 300T \leq 10000\)
2. Lens sales constraint: \(10 \leq L \leq 25\)
3. Tripod sales constraint: \(T \leq \frac{1}{3}L\)
4. Non-negativity constraint: \(L \geq 0, T \geq 0\)

Since \(L\) and \(T\) represent quantities of items, they are implicitly integers. However, for the purpose of this linear programming formulation, we'll first solve it as if \(L\) and \(T\) can be continuous, and then consider how to adjust for integer solutions if necessary.

## Gurobi Code

```python
import gurobi

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

    # Variables
    L = model.addVar(lb=10, ub=25, name="Lenses")
    T = model.addVar(lb=0, name="Tripods")

    # Objective function: Maximize profit
    model.setObjective(200*L + 150*T, gurobi.GRB.MAXIMIZE)

    # Budget constraint
    model.addConstr(400*L + 300*T <= 10000, name="Budget")

    # Tripod sales constraint
    model.addConstr(T <= L/3, name="Tripod_sales")

    # Solve the model
    model.optimize()

    # Print the solution
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal profit: {model.objVal}")
        print(f"Number of lenses to sell: {L.varValue}")
        print(f"Number of tripods to sell: {T.varValue}")
    else:
        print("No optimal solution found")

solve_camera_store_problem()
```

## Adjusting for Integer Solutions

Since \(L\) and \(T\) must be integers (as they represent quantities of items), we should ideally use an integer programming approach. Gurobi can handle this by setting the `vtype` attribute of the variables to `gurobi.GRB.INTEGER`. However, this problem initially allows for a continuous solution which might coincidentally yield integer values for \(L\) and \(T\). If not, and if integer solutions are strictly required, the code would need adjustment:

```python
L = model.addVar(lb=10, ub=25, vtype=gurobi.GRB.INTEGER, name="Lenses")
T = model.addVar(lb=0, vtype=gurobi.GRB.INTEGER, name="Tripods")
```

This adjustment could change the solution and potentially make the problem infeasible or require more computational time to solve.