cswork / OA打开练习工作台

Wells FargoOA #2

Allocate Wells for Fair Distribution

估计困难评测数据准备中,可先阅读题面

考点(AI 标注)前缀和区间二分查找

There are Oil wells around an island, represented as an array A[] where A[i] is the capacity of well i. There are N companies who bid for these wells. Now each company has to be allocated wells in a contiguous manner with fair distribution. A fair distribution is one which minimises the difference of the sum of capacity allocated to each of the companies. Input array A[] of length n Output capacity[] of length N where capacity[i] represents the total capacity allocated to company i.

Example 1

Input:

A = [25, 13, 17, 40, 8, 9, 22, 5]
N = 4

Output:

[30, 30, 40, 39]

Explanation: The wells are allocated as follows:

  • capacity[0] = A[0] + A[7] = 30 ; Contiguous as circular array
  • capacity[1] = A[1] + A[2] = 30
  • capacity[2] = A[3] = 40
  • capacity[3] = A[4] + A[5] + A[6] = 39 The difference between the minimum and maximum capacity[i] = 40 - 30 = 10.