COCI '23 Contest 5 #4 Rolete
View as PDF
One Saturday Luka woke up from an afternoon nap and remembered: today is COCI! There was only one thing that he needed to do before the contest: raise the blinds.
Luka has  blinds in his room, where the 
-th one is lowered by 
 centimeters from the top of the window.
He can raise the blinds in two ways:
- He can start lifting any singular blind manually.
With this method, it takes him 
seconds to raise the blind by 1 centimeter.
 - He can press a button, which starts raising all blinds in parallel at the same speed.
 
The speed at which the blinds are raised with a button is defined as follows:
If all blinds are still rising, each will rise by 1 centimeter in  seconds.
If 
 blinds have already risen to the top, that slows down the system.
Then, it will take 
 seconds for all the remaining blinds to rise by 1 centimeter.
COCI is about to start, and Luka wants to raise his blinds as soon as possible.
Meanwhile, his brother Marin entered the room and asked him  questions:
What is the minimum time you need to raise the blinds so that they are all lowered by at most 
 centimeters?
Marin is interested in the answer for each question considering the initial state of the blinds.
They realized that there is not enough time to think about it before COCI. Fortunately, the problem has just appeared here as well! Help them solve it!
Note: Luka will always raise the blinds by an integer number of centimeters.
Input Specification
The first line contains integers , 
, 
 and 
 
, the number of blinds, the time required to raise a blind manually, the time required to raise a blind with a button and the slowing factor of parallel raising.
The second line contains  integers 
 
, the initial state of the blinds.
The third line contains an integer  
, the number of questions.
The fourth line contains  integers 
 
, the required maximal blind height.
Output Specification
In the first and only line, print  numbers, the 
-th of them being the minimum time for raising the blinds such that they are lowered by at most 
 centimeters.
Constraints
| Subtask | Points | Constraints | 
|---|---|---|
| 1 | 16 | |
| 2 | 26 | |
| 3 | 32 | |
| 4 | 36 | No additional constraints. | 
Sample Input 1
3 2 5 1
2 2 4
3
2 0 1
Sample Output 1
4 14 9
Explanation for Sample 1
To have all blinds lowered by at most  centimeters, Luka needs to raise the third blind by 
 centimeters.
The quickest way to do this is to raise it manually.
This will take him 
 seconds.
If all blinds need to be fully raised, Luka can first raise the third blind by  centimeters manually.
Now he can press the button and let the blinds rise in parallel by 
 centimeters.
In total, this will take 
 seconds.
Similarly, if the blinds need to be lowered by at most  centimeter, Luka will first raise the third blind by 
 centimeters, and then raise all blinds together by 
 centimeter.
The total time for raising will be 
 seconds.
Sample Input 2
2 3 4 0
3 1
3
3 2 0
Sample Output 2
0 3 10
Sample Input 3
4 3 10 3
2 4 5 6
3
4 3 0
Sample Output 3
9 18 47
                    
Comments