CF883C Downloading B++

题目描述

距离知名的线上编程大赛 Codehorses Round 2017 只剩 $T$ 毫秒啦! Polycarp 需要下载 B++ 的编译器来参加这次比赛。文件的大小是 $f$ 字节。 Polycarp的网络套餐能让他以每 $t0$ 秒 $1$ 字节的速度下载。这个套餐已经付过费了,它的使用也不会导致任何费用。除此以外,互联网服务的提供商额外提供了两个下载包: - 以每 $t1$ 毫秒 $1$ 字节的速度下载 $a1$ 字节,价格是 $p1$ burles。 - 以每 $t2$ 毫秒 $1$ 字节的速度下载 $a2$ 字节,价格是 $p2$ burles。 这些包可以任意购买。买包时,它的价格($p1$ 或 $p2$)是提前付款的。一旦一个包被购买,它就会取代常规的网络套餐直到到达下载上限。在一个包用完后,Polycarp 可以立即买新包或者调到常规的套餐(不损失时间)。一个包正在使用时,Polycarp 不能再买包或者调回常规套餐。 你的任务就是找到 Polycarp 最少需要花多少钱才能在 $T$ 毫秒内下载一个 $f$ 字节的文件。 注意:因为技术原因,不管用哪种手段(常规套餐或下载包),Polycarp的下载的字节数**都是整数**, 即三种下载方式的下载字节数都会是整数。也就是说,Polycarp 不能用常规套餐和/或下载包来分块地下载一个字节。

输入格式

第一行包含三个整数 $f$、$T$ 和 $t_0$($1 \leq f, T, t_0 \leq 10^7$)—— 要下载的文件大小(以字节为单位)、下载文件的最大时间(以毫秒为单位),以及使用常规网络资费下载每字节所需的毫秒数。 第二行包含第一个附加套餐的描述。该行包含三个整数 $a_1$、$t_1$ 和 $p_1$($1 \leq a_1, t_1, p_1 \leq 10^7$),其中 $a_1$ 是最大下载数据量(以字节为单位),$t_1$ 是下载每字节所需的时间(以毫秒为单位),$p_1$ 是该套餐的价格(以 burles 为单位)。 第三行包含第二个附加套餐的描述。该行包含三个整数 $a_2$、$t_2$ 和 $p_2$($1 \leq a_2, t_2, p_2 \leq 10^7$),其中 $a_2$ 是最大下载数据量(以字节为单位),$t_2$ 是下载每字节所需的时间(以毫秒为单位),$p_2$ 是该套餐的价格(以 burles 为单位)。 Polycarp 可以多次购买任意套餐。一旦购买套餐,它将替代常规资费,直到套餐数据限额完全用完。在使用套餐期间,Polycarp 不能购买另一个套餐或切换回常规网络资费。

输出格式

输出 Polycarp 最少需要多少钱(也就是多少 burles)才能在T毫秒内下载好 B++ 编译器。无解输出 $-1$。

说明/提示

在样例一中,Polycarp 需要买第一个下载包5次、买第二个下载包 $0$ 次。他在 $120\times8 = 960$ 毫秒($960 \le964$)内下载了 $120$ 字节(其实一共下载了 $26\times5 = 130$ 字节)。他总共花了 $8\times5 = 40$ burles。 在样例二中,Polycarp 有足够的时间去下载 $10$ 字节。花费的时间($10\times20 = 200$ 毫秒)等于上限。 在样例三中,Polycarp 需要买第一个下载包 $1$ 次,第二个下载包 $1$ 次。 在样例四中,Polycarp 无法按时下载。