Codeforces Round #475 (Div. 2) B. Messages

 
 

There are n incoming messages for Vasya. The i-th message is going to be received after ti minutes. Each message has a cost, which equals to A initially. After being received, the cost of a message decreases by B each minute (it can become negative). Vasya can read any message after receiving it at any moment of time. After reading the message, Vasya's bank account receives the current cost of this message. Initially, Vasya's bank account is at 0.

Also, each minute Vasya's bank account receives C·k, where k is the amount of received but unread messages.

Vasya's messages are very important to him, and because of that he wants to have all messages read after T minutes.

Determine the maximum amount of money Vasya's bank account can hold after T minutes.

Input

The first line contains five integers nABC and T (1 ≤ n, A, B, C, T ≤ 1000).

The second string contains n integers ti (1 ≤ ti ≤ T).

Output

Output one integer  — the answer to the problem.

Examples
input
Copy
4 5 5 3 5
1 5 5 4
output
Copy
20
input
Copy
5 3 1 1 3
2 2 2 1 1
output
Copy
15
input
Copy
5 5 3 4 5
1 2 3 4 5
output
Copy
35
Note

In the first sample the messages must be read immediately after receiving, Vasya receives A points for each message, n·A = 20 in total.

In the second sample the messages can be read at any integer moment.

In the third sample messages must be read at the moment T. This way Vasya has 1234 and 0 unread messages at the corresponding minutes, he gets 40 points for them. When reading messages, he receives (5 - 4·3) + (5 - 3·3) + (5 - 2·3) + (5 - 1·3) + 5 =  - 5 points. This is 35 in total.

题意:n个邮件,如果在它刚到达就查看则会收到A元,每每接收一封邮件后每分钟减少B元,每一分钟会受到C*k元 k为到达还没有接收的邮件数量

要求在T分钟后收到所有邮件且收益最大

思路:判断当邮件立即到达钱多还是放到最后钱多,主要是比较b与c 如果b<c 则最后收邮件 否则立刻收

#include<bits/stdc++.h>
using namespace std;
int num[1005];
int main()
{
    int n,a,b,c,t,ans=0,sum=0;
    cin>>n>>a>>b>>c>>t;
    for(int i=1;i<=n;i++){
        cin>>num[i];
        sum+=t-num[i];
    }
    ans=n*a;
    if(b<c){
       ans+=sum*(c-b);
    }
    cout<<ans<<endl;
    return 0;
}



猜你喜欢

转载自blog.csdn.net/deepseazbw/article/details/80208238