9603 - 星际战争

通过次数

0

提交次数

0

时间限制 : 1 秒
内存限制 : 128 MB

3333 年,在银河系的某星球上,X 军团和 Y 军团正在激烈地作战。

在战斗的某一阶段,Y 军团一共派遣了 N 个巨型机器人进攻 X 军团的阵地,其中第 i 个巨型机器人的装甲值为 A_i。当一个巨型机器人的装甲值减少到 0 或者以下时,这个巨型机器人就被摧毁了。

X 军团有 M 个激光武器,其中第 i 个激光武器每秒可以削减一个巨型机器人 B_i 的装甲值。激光武器的攻击是连续的。

这种激光武器非常奇怪,一个激光武器只能攻击一些特定的敌人。Y 军团看到自己的巨型机器人被 X 军团一个一个消灭,他们急需下达更多的指令。

为了这个目标,Y 军团需要知道 X 军团最少需要用多长时间才能将 Y 军团的所有巨型机器人摧毁。但是他们不会计算这个问题,因此向你求助。

输入

第一行,两个整数,N,M

第二行,N 个整数,A_1,A_2 \cdots A_N

第三行,M 个整数,B_1,B_2 \cdots B_M

接下来的 M 行,每行 N 个整数,这些整数均为 0 或者 1。这部分中的第 i 行的第 j 个整数为 0 表示第 i 个激光武器不可以攻击第 j 个巨型机器人,为 1 表示第 i 个激光武器可以攻击第 j 个巨型机器人。

输出

一行,一个实数,表示 X 军团要摧毁 Y 军团的所有巨型机器人最少需要的时间。输出结果与标准答案的绝对误差不超过 10^{-3} 即视为正确。

样例

输入

2 2
3 10
4 6
0 1
1 1

输出

1.300000

提示

【样例说明1】

战斗开始后的前 0.5 秒,激光武器 1 攻击 2 号巨型机器人,激光武器 2 攻击 1 号巨型机器人。1 号巨型机器人被完全摧毁,2 号巨型机器人还剩余 8 的装甲值;

接下来的 0.8 秒,激光武器 12 同时攻击 2 号巨型机器人。2 号巨型机器人被完全摧毁。

对于全部的数据,1 \le N,M \le 501 \le A_i \le 10^51 \le B_i \le 1000,输入数据保证 X 军团一定能摧毁 Y 军团的所有巨型机器人。

来源

山东省选