3131:燃料分配(fuel.cpp)

文件提交:无需freopen 内存限制:256 MB 时间限制:1.000 S
评测方式:普通裁判
金币值:1
命题人:
提交:30 解决:1

题目描述

现在有 n 台机器在工作,每台机器都需要输入一些燃料才能够工作。你总共有 m 单位的燃料,你可以将这些燃料随意分给每台机器。一台机器能够工作的阈值为 k,即若某一台机器被分到的燃料小于 k,则无法工作。

一台机器的产出和投入燃料成正比,即假设一台机器被分到的燃料为 p,则它每分钟产出 p。同时,每台机器的总产出上限为 Q,即如果一台机器经过若干时长的工作之后已经产出了 Q,则之后它不会再产出。

你总共有 t 分钟,你希望在这段时间内所有机器的产出之和尽可能地多,请问最多的产出之和是多少?

请注意:在第 0 分钟时,你可以进行燃料分配,之后你无法再调整每个机器被分到的燃料。且每个机器被分到的燃料必须为一个整数。

输入

输入一行包含五个正整数 ,意义如题面所示。

输出

输出一行一个整数表示答案。

样例输入

2 10 6 25 3

样例输出

25 

提示

【样例 1 说明】

将所有燃料全部分给机器  1,那么机  1  每分钟产出  10,总共产出  3  分钟。 但是由于单个机器的产出上限为 25  所以机器 1  的总产出是 25。由于机器启 动的值为 6 ,而燃料总数只有  10 ,所以无法让两台机器都启动。

【样例 2 输入】

2 10 5 25 3

【样例 2 输出】

30

【样例 2 说明】

给每台机器 5  的燃料,  3  分钟后每台机器产出 15,共产出  30

【样例 3 输入】

 

123456 4 2 57257 98765

【样例 3 输出】

 

114514

【样例 4 输入】

 

123456 10 3 234567 301

【样例 4 输出】

 

3010

数据范围】

对于 30%  的数据,有 1 ≤ n ≤ 10,1 ≤ m ≤ 100 

对于 70%  的数据,有 1 ≤ n, m, k, Q, t ≤ 105

对于 100%  的数据,有 1 ≤ n, m, k, Q, t ≤ 109