Minimize Cost
Practice
2.7 (247 votes)
Basic programming
Greedy algorithms
Medium
Problem
64% Success 38885 Attempts 30 Points 1s Time Limit 256MB Memory 1024 KB Max Code

You are given an array of numbers \(A_{i}\) which contains positive as well as negative numbers . The cost of the array can be defined as \(C(X)\)

\(C(x) = |A_{1} + T_{1}| + |A_{2}+T_{2}| + ........ |A_{n}+T_{n}|\) , where T is the transfer array which contains N zeros initially.

You need to minimize this cost . You can transfer value from one array element to another if and only if the distance between them is at most K.

Also, transfer value can't be transferred further.

Say array contains \(3, -1 , -2\) and \(K = 1\)

if we transfer 3 from \(1^{st}\) element to \(2^{nd}\) , the array becomes

Original Value \(3, -1,-2\)

Transferred value \(-3 , 3, 0\)

\(C(x) = |3-3| + |-1+3| + ........ |-2+0| = 4 \) which is minimum in this case

Note :

Only positive value can be transferred

It is not necessary to transfer whole value i.e partial transfer is also acceptable. This means that if you have \(A[i] = 5\) then you can distribute the value 5 across many other array elements provided that they finally sum to a number less than equal to 5. For example 5 can be transferred in chunks of smaller values say 2 , 3 but their sum should not exceed 5.

Input:

First line contains N and K separated by space

Second line denotes an array of size N

Output

Minimum value of \(C(X)\)

Constraints

\(1\le N,K \le 10^{5} \)

\( -10^{9}\le A_{i} \le 10^{9} \)

Please login to use the editor

You need to be logged in to access the code editor

Loading...

Please wait while we load the editor

Loading...
Results
Custom Input
Run your code to see the output
Submissions
Please login to view your submissions
Similar Problems
Points:30
375 votes
Tags:
Basic ProgrammingInput/OutputMediumPrefix sumprefix-sum
Points:20
238 votes
Tags:
ApprovedEasyGreedy AlgorithmsImplementationOpen
Points:30
183 votes
Tags:
AlgorithmsApprovedDynamic ProgrammingMediumOpen