Note π - might be a sister problem of π¦₯ Get Max Sum
Amazon is building a new data center with n
servers of different types. The health and type of each server are represented in the arrays health
and serverType
. The developers need to build a server facility with a maximum of k
distinct types of servers and the sum of their health should be maximized.
Given arrays health
and serverType
, find the maximum sum of the health for up to k
types of servers.
Function Description
Complete the function getMaximumSum
in the editor.
getMaximumSum
has the following parameters:
int health[n]
: the health of each serverint serverType[n]
: the type of each serverint k
: the maximum number of distinct types
Returns
long int
: the maximum sum of health of the selected servers
Thanks a lot to Spike β our trusted authority! π₯°
Example 1:
Input: health = [4, 5, 5, 6], serverType = [1, 2, 1, 2], k = 1
Output: 11
Explanation:Since
k = 1
, all selected servers must be the same type. The better option is to select type2
servers. The maximum sum of health for type2
servers is5 + 6 = 11
. Return11
.
Example 2:
Input: health = [1, 2, 3, 10, 10], serverType = [3, 3, 1, 2, 5], k = 2
Output: 20
Explanation:Withk = 2
, the best option is to select servers of types1
and5
. The maximum sum of health for these types is2 + 3 + 10 = 15
for type1
and10
for type5
, which adds up to20
. Return20
.
1 β€ k β€ n β€ 10^5
1 β€ health[i] β€ 10^9
1 β€ serverType[i] β€ n

input:
output: