
Team Play
Two teams of robots are playing the game of cut-or-bend . The rules of the game are very simple:
- The team that has processed more details than its opponent is a winner.
- A detail is considered to be processed if it is either bent or cut.
- Each robot can perform both bending and cutting, but during the game it can perform only one of two functions.
- Each team consists of N players, K of them must be occupied with cutting. All the rest must be occupied with bending.
Input: Three arguments. Two lists of integers of equal size representing team's stats. An integer - a number of team's members that have to be occupied with cutting.
Output: An integer - the maximum score which can be obtained by the team.
Example:
Consider having input to be [4, 2, 1], [2, 5, 3], 2 . The best score is obtained by assigning the first and the third robots to perform cutting and the second robot to perform bending.cut : [4, _, 1] -> total: 5 bend: [_, 5, _] -> total: 5 ------------------------------ total: 10
max_score([4, 2, 1], [2, 5, 3], 2) == 10 max_score([7, 1, 4, 4], [5, 3, 4, 3], 2) == 18 max_score([5, 5, 5], [5, 5, 5], 1) == 15
How it’s used: This is a discrete optimization puzzle. As Leonhard Euler has stated, "Nothing in the world takes place without optimization, and there is no doubt that all aspects of the world that have a rational basis can be explained by optimization methods."
Precondition: 3 ≤ N ≤ 50 1 ≤ K ≤ N - 1 1 ≤ list[i] ≤ 100