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