#P50330. 「SDOI2015」星际战争

「SDOI2015」星际战争

题目描述

3333 年,在银河系的某星球上,X 军团和 Y 军团正在激烈地作战。在战斗的某一阶段,Y 军团一共派遣了 NN 个巨型机器人进攻 X 军团的阵地,其中第 ii 个巨型机器人的装甲值为 AiA_i。当一个巨型机器人的装甲值减少到 00 或者以下时,这个巨型机器人就被摧毁了。X 军团有 MM 个激光武器,其中第 ii 个激光武器每秒可以削减一个巨型机器人 BiB_i 的装甲值。激光武器的攻击是连续的。这种激光武器非常奇怪,一个激光武器只能攻击一些特定的敌人。

Y 军团看到自己的巨型机器人被 X 军团一个一个消灭,他们急需下达更多的指令。为了这个目标,Y 军团需要知道 X 军团最少需要用多长时间才能将 Y 军团的所有巨型机器人摧毁。但是他们不会计算这个问题,因此向你求助。

输入格式

第一行,两个整数,N,MN, M
第二行,NN 个整数,A1,A2,,ANA_1, A_2, \ldots, A_N
第三行,MM 个整数,B1,B2,,BNB_1, B_2, \ldots, B_N
接下来的 MM 行,每行 NN 个整数,这些整数均为 0 或者 1。这部分中的第 ii 行的第 jj 个整数为 0 表示第 ii 个激光武器不可以攻击第 jj 个巨型机器人,为 1 表示第 ii 个激光武器可以攻击第 jj 个巨型机器人。

输出格式

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

样例

2 2
3 10
4 6
0 1
1 1
1.300000

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

数据范围与提示

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