a627. 7. RAID Sizer
Tags :
Accepted rate : 119人/127人 ( 94% ) [非即時]
評分方式:
Tolerant

最近更新 : 2013-02-26 06:33

Content

伺服器用一些技術來增加磁碟效能,也複製資料到額外的硬碟以防止其中一個故障時導致資料的遺失。這些技術我們稱為 RAID (Redudant Array of Inexpensive Disks)。常用的 RAID 層級有三種: 

  • RAID 0: 把兩個或更多的硬碟結合為一個硬碟,它們的資料「帶狀」交叉。這方法增加了硬碟的效能,但不提供任何資料的保護。例如:三個 250GB 的硬碟組成一個 RAID 陣列,在使用者看來,就像一個 750 GB 的硬碟。
  • RAID 1: 每一個硬碟都有一個重複的硬碟,彼此「鏡射」對方的資料。儘管這方式並不會增加容量,但當其中一個故障時,資料不會遺失。鏡射的硬碟必須是完全相同的一對。例如:把一個 500GB 硬碟鏡射到另一個 500GB 的硬碟。使用者雖然只看到一個 500GB 的硬碟,但是得知就算有硬碟故障資料也不會遺失,會讓你睡得更安穩。
  • RAID 5: 這個方式將 2 個或更多 (最多 7 個) 硬碟帶狀交叉,並在另一個完全相同的硬碟上產生同位元資料。這好比使用 RAID 0,並加一個由整個群組共用的鏡射硬碟。例如:以 RAID 5 的方式安排四個 400GB 的硬碟——其中三個硬碟透過帶狀交叉產生一個 1200GB 的硬碟,而第四個硬碟只是用來容錯。

請寫一個程式來決定一個最便宜的陣列組態。你的陣列最多可使用 8 個完全相同容量的硬碟。可供使用的硬碟容量 (價格) 如下:250GB ($75), 400GB ($110), 500GB ($140), 750GB ($250)。

 

Input
每筆測資一行,含有所需的陣列容量 (不含鏡射) 及 RAID 層級。根據硬碟的容量,產生的陣列容量可以大於所需的容量。
Output
你的程式要輸出能提供所需容量的最便宜的陣列組合,包括所需的硬碟容量及數量,陣列總容量及陣列的成本。
Sample Input #1
450 1
1200 0
600 5
1300 1
3000 5
4500 5
Sample Output #1
Qty: 2 Disk: 500GB Price: $140
Total price of this 500GB array: $280

Qty: 3 Disk: 400GB Price: $110
Total price of this 1200GB array: $330

Qty: 4 Disk: 250GB Price: $75
Total price of this 750GB array: $300

Qty: 6 Disk: 500GB Price: $140
Total price of this 1500GB array: $840

Qty: 7 Disk: 500GB Price: $140
Total price of this 3000GB array: $980

Qty: 7 Disk: 750GB Price: $250
Total price of this 4500GB array: $1750
測資資訊:
記憶體限制: 512 MB
公開 測資點#0 (100%): 1.0s , <1K
Hint :
Tags:
出處:
HP CodeWars2007 [管理者: snail (蝸牛) ]

Status Forum 排行

ID User Problem Subject Hit Post Date
沒有發現任何「解題報告」