## Problem Description and Formulation

The problem is a linear programming optimization problem. The goal is to maximize the profit of X-Luxury Cloth by determining the optimal ratio of coats and skirts to produce, given the constraints on designing and printing time.

### Variables

- Let \(C\) be the number of coats produced.
- Let \(S\) be the number of skirts produced.

### Objective Function

The objective is to maximize the total profit \(P\), where each coat nets $12 and each skirt nets $16 in profit.

\[P = 12C + 16S\]

### Constraints

1. **Designing Time Constraint**: Each coat requires 1.5 hours of designing time, and each skirt requires 3 hours. The designers are available 45 hours a week.

\[1.5C + 3S \leq 45\]

2. **Printing Time Constraint**: Each coat requires 2.5 hours of printing time, and each skirt requires 3.5 hours. The printing machine is available 70 hours per week.

\[2.5C + 3.5S \leq 70\]

3. **Non-Negativity Constraint**: The number of coats and skirts cannot be negative.

\[C \geq 0, S \geq 0\]

## Gurobi Code

```python
import gurobi

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

    # Define variables
    C = model.addVar(name="C", lb=0, vtype=gurobi.GRB.CONTINUOUS)  # Number of coats
    S = model.addVar(name="S", lb=0, vtype=gurobi.GRB.CONTINUOUS)  # Number of skirts

    # Objective function: Maximize profit
    model.setObjective(12*C + 16*S, sense=gurobi.GRB.MAXIMIZE)

    # Constraints
    model.addConstr(1.5*C + 3*S <= 45, name="Designing_Time_Constraint")
    model.addConstr(2.5*C + 3.5*S <= 70, name="Printing_Time_Constraint")

    # Optimize
    model.optimize()

    # Print solution
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal solution: Coats = {C.varValue}, Skirts = {S.varValue}")
        print(f"Maximum profit: ${model.objVal:.2f}")
    else:
        print("No optimal solution found.")

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

This code defines the optimization problem using Gurobi's Python interface, solves it, and prints out the optimal values for the number of coats and skirts to produce, along with the maximum achievable profit.