Building Blocks

Accepts: 105
Submissions: 1415
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
Problem Description
After enjoying the movie,LeLe went home alone. LeLe decided to build blocks. LeLe has already built $n$ piles. He wants to move some blocks to make $W$ consecutive piles with exactly the same height $H$. LeLe already put all of his blocks in these piles, which means he can not add any blocks into them. Besides, he can move a block from one pile to another or a new oneŁ¬but not the position betweens two piles already exists.For instance,after one move,"3 2 3" can become "2 2 4" or "3 2 2 1",but not "3 1 1 3". You are request to calculate the minimum blocks should LeLe move.
Input
There are multiple test cases, about $100$ cases. The first line of input contains three integers $n,W,H(1 \leq n,W,H \leq 50000)$.$n$ indicate $n$ piles blocks. For the next line ,there are $n$ integers $A_1,A_2,A_3,ˇ­ˇ­,A_n$ indicate the height of each piles. $(1 \leq A_i \leq 50000)$ The height of a block is 1.
Output
Output the minimum number of blocks should LeLe move. If there is no solution, output "-1" (without quotes).
Sample Input
4 3 2
1 2 3 5
4 4 4
1 2 3 4
Sample Output
1
-1
Hint
In first case, LeLe move one block from third pile to first pile.