## Problem Description and Formulation

Cindy needs to drink orange juice and apple juice to get extra amino acids. The goal is to minimize the amount of Glycine she gets while meeting certain requirements for Lysine, Alanine, and Methionine.

Let's define the variables:
- $x$: the number of glasses of orange juice Cindy drinks
- $y$: the number of glasses of apple juice Cindy drinks

The constraints based on the problem description are:
- $2x + 5y \geq 30$ (at least 30 units of Lysine)
- $3x + 5y \geq 40$ (at least 40 units of Alanine)
- $5x + 2y \leq 50$ (at most 50 units of Methionine)
- $x \geq 0$ and $y \geq 0$ (non-negativity constraints, as Cindy cannot drink a negative number of glasses)

The objective function to minimize is $7x + y$ (the total amount of Glycine).

## Gurobi Code

```python
import gurobi

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

    # Define the variables
    x = model.addVar(lb=0, name="orange_juice")  # glasses of orange juice
    y = model.addVar(lb=0, name="apple_juice")  # glasses of apple juice

    # Define the constraints
    model.addConstr(2*x + 5*y >= 30, name="lysine_constraint")
    model.addConstr(3*x + 5*y >= 40, name="alanine_constraint")
    model.addConstr(5*x + 2*y <= 50, name="methionine_constraint")

    # Define the objective function
    model.setObjective(7*x + y, gurobi.GRB.MINIMIZE)

    # Optimize the model
    model.optimize()

    # Print the results
    if model.status == gurobi.GRB.Status.OPTIMAL:
        print(f"Optimal solution: x = {x.varValue}, y = {y.varValue}")
        print(f"Minimum Glycine: {7*x.varValue + y.varValue}")
    else:
        print("No optimal solution found")

# Run the optimization problem
solve_optimization_problem()
```