總時間限制: 1000ms 記憶體限制: 65536kb
描述 小s新買了乙個掌上遊戲機,這個遊戲機由兩節5號電池供電。為了保證能夠長時間玩遊戲,他買了很多5號電池,這些電池的生產商不同,質量也有差異,因而使用壽命也有所不同,有的能使用5個小時,有的可能就只能使用3個小時。顯然如果他只有兩個電池乙個能用5小時乙個能用3小時,那麼他只能玩3個小時的遊戲,有乙個電池剩下的電量無法使用,但是如果他有更多的電池,就可以更加充分地利用它們,比如他有三個電池分別能用3、3、5小時,他可以先使用兩節能用3個小時的電池,使用半個小時後再把其中乙個換成能使用5個小時的電池,兩個半小時後再把剩下的一節電池換成剛才換下的電池(那個電池還能用2.5個小時),這樣總共就可以使用5.5個小時,沒有一點浪費。
現在已知電池的數量和電池能夠使用的時間,請你找一種方案使得使用時間盡可能的長。
輸入 輸入包含多組資料。每組資料報括兩行,第一行是乙個整數n (2 ≤ n ≤ 1000),表示電池的數目,接下來一行是n個正整數表示電池能使用的時間。
輸出 對每組資料輸出一行,表示電池能使用的時間,保留到小數點後1位。
樣例輸入
2 3 5
3 3 3 5
樣例輸出
3.0
5.5
當壽命最長的電池的壽命小於其他所有電池壽命之和,則所有電池的電量總是可以用完的。
因為在用多個「低電量電池」拼湊」高電量電池」時,可調整「低電量」的使用時間,使得剩餘電量可以用光。
而當壽命最長的電池壽命高於其他所有電池壽命之和,最終可用時間則為除最高電量外的所有電池壽命之和。
#include
#include
using
namespace
std;
////同樣是參考的,每次一看思路,怎麼就這麼簡單就想不到呢
int n,a;
int main()
if(m>c-m)
else
printf("%.1f\n",(double)c/2);
}}
N 2469電池的壽命
2469 電池的壽命 總時間限制 描述 輸入 輸出 樣例輸入 2 3 5 3 3 3 5 樣例輸出 3.05.5 1000ms 記憶體限制 65536kb 小s新買了乙個掌上遊戲機,這個遊戲機由兩節5號電池供電。為了保證能夠長時間玩遊戲,他買了很多5號電池,這些電池的生產商不同,質量也有差異,因而使...
貪心 電池的壽命
電池的壽命 總時間限制 1000ms 記憶體限制 65536kb 描述 小s新買了乙個掌上遊戲機,這個遊戲機由兩節5號電池供電。為了保證能夠長時間玩遊戲,他買了很多5號電池,這些電池的生產商不同,質量也有差異,因而使用壽命也有所不同,有的能使用5個小時,有的可能就只能使用3個小時。顯然如果他只有兩個...
電池的壽命(貪心)
電池的壽命 總時間限制 1000ms 記憶體限制 65536kb 描述 小s新買了乙個掌上遊戲機,這個遊戲機由兩節5號電池供電。為了保證能夠長時間玩遊戲,他買了很多5號電池,這些電池的生產商不同,質量也有差異,因而使用壽命也有所不同,有的能使用5個小時,有的可能就只能使用3個小時。顯然如果他只有兩個...