Assumptions: Everyone gets only one of their choices, so one portion. If they say steak or chicken, they just get one portion of chicken or steak. Everything I buy is one portion as well. Like I'm planning for a prom and everyone gets only one thing out of their choices. Also everyone gets one drink and one food.
I used linear programming and the pulp python library to find the optimum values, with constraints that each person only gets one food, and one drink, and the prices of all are within budget. Also the variables are boolean.