p1464.cpp

来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· C++ 代码 · 共 46 行

CPP
46
字号
// zju 1464
#include <stdio.h>
#define MAX 10000

int     N , K;
double  Long [MAX] , TotalLong;

void    init ()
{
        int     i;
        scanf ( "%d%d" , &N , &K );
        for ( TotalLong = i = 0; i < N; i ++ ) {
                scanf ( "%lf" , &Long [i] );
                TotalLong += Long [i];
        }
}

double  Answer ()
{
        int     i , get; 
        double  low = 0 , high = TotalLong / K + 1, mid;

        while ( low + 0.01 < high ) {
                mid = ( low + high ) / 2;
                for ( get = i = 0; i < N; i ++ )
                        get += int ( Long [i] / mid );
                if ( get >= K ) low = mid;
                        else high = mid;
        }

        return low;
}

main ()
{
        freopen ( "p.in" , "r" , stdin );
        freopen ( "p.out" , "w" , stdout );
        
        int     total;
        for ( scanf ( "%d" , &total ); total; total -- ) {
                init ();
                printf ( "%.2lf\n" , Answer () );
                if ( total ) printf ( "\n" );                
        }
}
 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?