COCI '23 Contest 5 #4 Rolete

View as PDF

Points: 15 (partial)
Time limit: 2.0s
Memory limit: 512M

Problem type

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.

1 16
2 26
3 32

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