jl 和 sz 等四人一行人一同在校园闲逛,突然他们看到了一个 cos 兔女郎的学生在发传单。他们拿到传单,上面写着:
嗨你好,很荣幸在这里向您介绍一下我们部门:松花部。这是一个关于人类高质量部门招聘人类高质量新生的一个传单……(此处略去大段文本)为了证明您是高质量的新生,请您解答以下问题,证明您的实力:
问题如下:
现在有 n 栋损坏的公共建筑,编号从 1 到 n ,第 i 栋建筑的损坏值为 a_i,每经过 1 天,损坏的第i栋建筑会带来 a_i 点经济损失。第i栋完全修复所需天数为 b_i,每修复一天可以降低 \dfrac{a_i}{b_i} 的损坏值,但修复的当天该建筑造成的损失与当天修复前损坏值一致。你只有一支施工队,所以每天只能修复一栋建筑,每天可以修复不同的建筑,不要求对一栋建筑持续修复直至完全修复。请使用最优的修复方案,使得总经济损失最小,并求最小的经济损失。
输入
输入一行一个整数 n \ (1 \leq n\leq 10^3)。
接下来输入一行 n 个整数,第 i 个整数代表 a_i \ (1 \leq a_i \leq 10^7, \sum_{i = 1}^{n} a_i \leq 10^7)。
接下来输入一行 n 个整数,第 i 个整数代表 b_i \ (1 \leq b_i \leq 10^7,\sum_{i=1}^n b_i \leq 10^7)。
输出
输出一行一个实数,代表最小的经济损失值。
你的答案被视为是正确的当且仅当你的答案与标准答案的相对误差不超过 0.01。
样例
标准输入 复制文本 |
4 2 4 6 2 2 1 3 1 |
标准输出 复制文本 |
45.000 |
提示
一种最优修复方案为:第一天修复第二栋建筑,当天经济损失为 2+4+6+2=14。接下来连续两天均修复第三栋建筑,这两天经济损失依次为 2+6+2,2+4+2,总共为 18。接下来一天可以修复第四栋建筑,当天损失为 2+2+2=6。接下来一天可以继续修复第三栋建筑,当天损失 2+2=4,最后两天可以修复第一栋建筑,损失依次为 2,1,共 3。所以答案为 14+18+6+4+2+1=45。
来源
2021 软件学院 AK 杯程序设计竞赛 (网络赛)