總時間限制:
1000ms
記憶體限制:
65536kb
描述 仙境的居民們決定舉辦一場程式設計區域賽。裁判委員會完全由自願組成,他們承諾要組織一次史上最公正的比賽。他們決定將選手的電腦用星形拓撲結構連線在一起,即將它們全部連到乙個單一的中心伺服器。為了組織這個完全公正的比賽,裁判委員會主席提出要將所有選手的電腦等距離地圍繞在伺服器周圍放置。
為購買網線,裁判委員會聯絡了當地的乙個網路解決方案提供商,要求能夠提供一定數量的等長網線。裁判委員會希望網線越長越好,這樣選手們之間的距離可以盡可能遠一些。
該公司的網線主管承接了這個任務。他知道庫存中每條網線的長度(精確到厘公尺),並且只要告訴他所需的網線長度(精確到厘公尺),他都能夠完成對網線的切割工作。但是,這次,所需的網線長度並不知道,這讓網線主管不知所措。
你需要編寫乙個程式,幫助網線主管確定乙個最長的網線長度,並且按此長度對庫存中的網線進行切割,能夠得到指定數量的網線。
輸入 第一行包含兩個整數n和k,以單個空格隔開。n(1 <= n <= 10000)是庫存中的網線數,k(1 <= k <= 10000)是需要的網線數量。接下來n行,每行乙個數,為庫存中每條網線的長度(單位:公尺)。所有網線的長度至少1m,至多100km。輸入中的所有長度都精確到厘公尺,即保留到小數點後兩位。
輸出 網線主管能夠從庫存的網線中切出指定數量的網線的最長長度(單位:公尺)。必須精確到厘公尺,即保留到小數點後兩位。若無法得到長度至少為1cm的指定數量的網線,則必須輸出「0.00」(不包含引號)。
樣例輸入
4 11
8.02
7.43
4.57
5.39
樣例輸出
2.00
using
namespace
std;
int n,k,l=0,r=0,mid,a[10005];
double t;
int jd(int mid)
int main()
while (l
printf("%.2f",l/100.0);//除以100.0
return
0;}
典型二分題。
技巧*100化小數為整數。
if (jd(mid)>=k)
l=mid;
else
r=mid-1;根據題目是否+1-1或是包含mid;
∵l=mid,當mid=(l+r)/2時,mid會等於l,
∴採用mid=(l+r)/2+1來避免死迴圈。
noi 04 網線主管
總時間限制 1000ms 記憶體限制 65536kb 描述仙境的居民們決定舉辦一場程式設計區域賽。裁判委員會完全由自願組成,他們承諾要組織一次史上最公正的比賽。他們決定將選手的電腦用星形拓撲結構連線在一起,即將它們全部連到乙個單一的中心伺服器。為了組織這個完全公正的比賽,裁判委員會主席提出要將所有選...
openjudge66 網線主管
時空限制 1000ms 64mb 仙境的居民們決定舉辦一場程式設計區域賽。裁判委員會完全由自願組成,他們承諾要組織一次史上最公正的比賽。他們決定將選手的電腦用星形拓撲結構連線在一起,即將它們全部連到乙個單一的中心伺服器。為了組織這個完全公正的比賽,裁判委員會主席提出要將所有選手的電腦等距離地圍繞在伺...
百練 1064 網線主管
描述 仙境的居民們決定舉辦一場程式設計區域賽。裁判委員會完全由自願組成,他們承諾要組織一次史上最公正的比賽。他們決定將選手的電腦用星形拓撲結構連線在一起,即將它們全部連到乙個單一的中心伺服器。為了組織這個完全公正的比賽,裁判委員會主席提出要將所有選手的電腦等距離地圍繞在伺服器周圍放置。為購買網線,裁...