Canadian Computing Competition: 2010 Stage 2, Day 2, Problem 1
After considering to buy a brand new Atari or Commodore computer (based on your extensive research in late February), you decide to get the best value for your dollar by building your own.
The computer that you are going to build is composed of ~T~ ~(1 \le T \le 5)~ different types of components. Your computer must have exactly one of each type of component.
Each component has an integer cost ~c_i~ ~(1 \le c_i \le 3\,000)~, an integer value ~v_i~ ~(1 \le v_i \le 3\,000)~, and type ~t_i~ ~(1 \le t_i \le T)~.
Your on-line computer parts store has ~N~ different components ~(1 \le N \le 1\,000)~ that you can select from.
For a given budget ~B~ ~(1 \le B \le 3\,000)~, maximize the total value of the components in your computer.
If you cannot construct such a computer, you should print
The first line contains ~T~, the number of types of components your computer requires. The next line contains the number ~N~, followed by ~N~ lines of three integers, representing ~c_i~, ~v_i~ and ~t_i~, each separated by one space. The last line of input is the budget ~B~.
Output the value of the maximum valued computer you can create which costs at most ~B~, or
-1 if you cannot construct a computer.
2 5 10 6 1 5 7 1 6 10 2 1 5 1 11 11 2 16
Explanation for Sample Output
Notice that picking the components with cost ~11~ and ~5~ yields a computer with value ~18~. No other combination of components has a higher value.