CODEVITA (TCS)
TCS CodeVita
CodeVita Round 1 2020 question Season 9
CodeVita :
Diet Plan
- Problem Description
Arnold is planning to follow a diet
suggested by his Nutritionist. The Nutritionist prescribed him the total
protein, carbohydrates and fats, he should take daily. Arnold searches on an
online food store and makes a list of protein, carbohydrates and fats contained
in a single unit of various food items.
His target is to have the maximum
protein, carbohydrates and fats in his diet without exceeding the prescribed
limit. He also wants to have as much diverse food items as much as possible.
That is, he does not want to have many units of one food item and 0 of others.
Multiple combinations of 'units of food items' are possible to achieve the
target. Mathematically speaking, diversity is more if the difference between
the number of units of food item chosen the most and the number of units of
another food item chosen the least, is as small as possible.
To solve this problem, he uses
maximum possible number of units of all the items so that total amount of
protein, carbohydrates and fats is not more than prescribed limit. For example
- if total nutrition required is 100P, 130C and 130F (where P is Protein, C is
Carbohydrates and F is Fats) and 2 different food items, viz. Item A and Item
B, have following amount of nutrition:
Item A - 10P, 20C, 30F
Item B - 20P, 30C, 20F
then, he can have (maximum possible)
2 units of all the items as having 3 units will exceed the prescribed amount of
Carbohydrates and fats.
Next, he chooses food items to
fulfill the remaining nutrients. He chooses one more units of maximum number of
food items. He continues this process till he cannot add a unit of any food
item to his diet without exceeding the prescribed limit. In this example, he
can choose one more unit of item B or one more unit of item A. In case he has
two sets of food items then the priority is given to fulfill the requirements
of Protein, Carbohydrates, and Fats in that order. So he chooses item B.
You will be provided the maximum
nutrients required and the nutrients available in various food items. You need
to find the amount of nutrients for which there is a shortfall as compared to
the prescription, after making his selection using the process described above.
In the example he still needs 20P, 0C, 10F to achieve his target.
Maximum amount of Nutrients is less
than 1500 i.e. x +y + z <= 1500
Amount of P, C, F in two food items
will not be same
P, C, F values in input can be in
any order
Output should be in order - P, C, F.
First line contains the maximum
limit of nutrients in the following format.
xP yC zF, where x, y and z are
integers
Second line contains nutrient
composition of different food items separated by pipe (|).
E.g. If the output is 10P, 20 C, 30
F, then print "10 20 30" (without quotes).
100P 130C 130F
10P 20C 30F|20P 30C 20F
- Explanation
Having 2 units of item A and 3 units
of item B provides - 2 * [10P 20C 30F] + 3 * [20P 30C 20F] = 100P, 130C, 120F.
This is the best combination that can reduce the shortfall [20P, 0C, 10F]
without exceeding his prescription. In contrast, if 3 units of A and 2 units of
B are chosen then 3 * [10P 20C 30F] + 2 * [20P 30C 20F] = 70P, 120C, 130F produces
a shortfall of [30P, 10C, 0F]. However, since protein shortfall in this case is
more than the previous combination, this is not the right combination to
follow.
130P 120C 110F
4P 9C 2F|4P 3C 2F|7P 1C 3F
- Explanation
Having 9 units of item A, 9 units of
item B and 8 units of Item C provides - 9 * [4P 9C 2F] + 9 * [4P 3C 2F] + 8 *
[7P 1C 3F] = 108P, 116C, 60F. This is the best combination that can reduce the
shortfall [2P, 4C, 50F] without exceeding his prescription.
0 Comments