Editorial for TLE '16 Contest 6 (Mock CCC) J5 - Meal Plan
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
We can make a 2-dimensional integer array . For any
and
,
represents how many different ways the student can spend
dollars and have the last meal as
(
means breakfast,
means lunch, and
means dinner).
To start off, we know that the first meal must be breakfast, so we scroll through the breakfast options and add to every
.
Scrolling through the array, as we get to , we do
steps, one for every meal of the day.
- For each lunch option, we add
to
, since the student's next meal after breakfast must be lunch;
- Similarly, as we get to
, then for each dinner option, we add
to
, since the student's next meal after breakfast must be dinner;
- Lastly, as we get to
, then for each breakfast option, we add
to
, since after breakfast, the student can then begin considering the next day's breakfast.
In the end, we can find the number of ways to pay the most by taking the highest value of where
.
Time Complexity:
Comments