問題背景:
面對艱巨復雜的技術挑戰,百度所崇尚的系統設計哲學是“簡單可依賴”,而百度的工程師們正在互聯網世界中實踐著這種理念。這里正好有一個挑戰,讓作為百度之星的你小試牛刀:
在處理數以百億計的網絡信息的過程中,有一個很常見的問題:怎么樣將一個集群上的信息以最低的成本傳輸到另外一個集群上?
• 數據源集群A有n臺服務器,編號為1,2,…,n,i號服務器上待傳輸的數據量為Ai,單位是GB。
• 目的地集群B有m臺服務器,編號為1,2,…,m,j號服務器上的空閑容量為Bj,單位為GB。
• A集群的i號服務器上的每GB數據對于B的集群的j號服務器收益為Vi,j,從A集群的i號服務器向B集群的j號服務器傳輸1GB數據的開銷為Ci,j。
你的任務是在保證A中的所有數據傳輸完畢的前提下,性價比V/C盡量高。其中V為所有數據在B集群上的價值之和,C為總開銷。換句話說,若A集群的i號服務器向B集群的j號服務器發送了Ti,j個GB的數據,則性價比定義為:
輸入格式
第1行兩個整數n,m(1<=n,m<=50),即集群A和B各自的服務器臺數。
第2行包含n個不超過100的正整數A1,A2,…,An,即集群A中每臺服務器的待傳輸數據量(單位:GB)。
第3行包含m個不超過100的正整數B1,B2,…,Bm,即集群B中每臺服務器所能接受的最大數據量(單位:GB)。
第4~n+3行每行包含m個不超過100的非負整數Vi,j,表示集群A的i號服務器中每GB數據對于集群B中的j號服務器的價值。
第n+4~2n+3行每行包含m個不超過100的正整數Ci,j,表示集群A的i號服務器中每GB數據傳輸到集群B中的j號服務器所需要的開銷。
輸出格式
僅一行,為最大性價比。輸出保留三位小數(四舍五入)。如果A的數據無法傳輸完畢,輸出-1。
樣例輸入
22
12
21
110
75
61
32
樣例輸出
2.091
樣例解釋
一個方案是:
集群A的1號服務器把所有數據傳輸到集群B的1號服務器,價值11,開銷6。
集群A的2號服務器把1GB數據傳輸到集群B的1號服務器,價值7,開銷3,然后把剩下的1GB數據傳輸到集群B的2號服務器,價值5,開銷2。
性價比:(11+7+5)/(6+3+2)=2.091
另一個方案是:
集群A的1號服務器把所有數據傳輸到集群B的2號服務器,價值0,開銷1。
集群A的2號服務器把所有數據傳輸到集群B的1號服務器,價值14,開銷6。
性價比:(0+14)/(1+6)=2。
第一種方案更優。