随笔 - 21  文章 - 0  trackbacks - 0
<2009年5月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

常用链接

留言簿(1)

随笔分类

随笔档案

新闻档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

#include<iostream>
using namespace std;

const int N=10010;

int a[N];
int n,aim;


bool Check(int x){
    
int cnt=0;
    
int i;
    
for(i=1;i<=n;++i)
    
{
        cnt
+=a[i]/x;
    }

    
if(cnt>=aim)return 1;
    
return 0;
}



int solve(int mx){
    
int mid,left=1,right=mx;
    
while(left<=right)
    
{
        mid
=(left+right)>>1;
        
if(Check(mid))left=mid+1;
        
else right=mid-1;
    }

    
return right;
}





int main(){
    scanf(
"%d%d",&n,&aim);
    
double tp;
    
int i;
    
int mx=-1;
    
for(i=1;i<=n;++i)
    
{
        scanf(
"%lf",&tp);
        a[i]
=(tp+0.001)*100;
        
if(mx<a[i])mx=a[i];
    }

    
int res=solve(mx);
    
if(res==0)printf("0.00\n");
    
else printf("%.2lf\n",(double)res/100.00);
    
return 0;
}


posted on 2009-05-02 18:19 蔗晨 阅读(220) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理