POJ 1064 케이블 마스터 (2 점)
1028 단어 이분 수색
코드:
//
// main.cpp
// 1064 Cable master
//
// Created by Baoli1100 on 15/4/11.
// Copyright (c) 2015 Baoli1100. All rights reserved.
//
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define eps 1e-7
int a[10005];
int n,k;
bool OK(int mid){
int num=0;
for(int i=0;i<n;i++){
num+=a[i]/mid;
}
if(num>=k) return 1;
return 0;
}
int bs(){
int l=1,r=100000001;
int mid;
while(l<r-1){
mid=(l+r)/2;
if(OK(mid)) l=mid;
else r=mid;
}
if(!OK(l)) return -1;
return l;
}
int main(){
scanf("%d%d",&n,&k);
for(int i=0;i<n;i++){
double t;
scanf("%lf",&t);
a[i]=t*100+eps;
}
int res=bs();
if(res==-1) printf("0.00
");
else printf("%.2f
",bs()*1.0/100);
return 0;
}