結果

問題 No.67 よくある棒を切る問題 (1)
コンテスト
ユーザー latte0119
提出日時 2015-04-30 22:57:28
言語 C++11
(gcc 15.2.0 + boost 1.90.0)
コンパイル:
g++-15 -O2 -lm -std=gnu++11 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
AC  
実行時間 27 ms / 5,000 ms
コード長 499 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 757 ms
コンパイル使用メモリ 177,156 KB
実行使用メモリ 9,192 KB
最終ジャッジ日時 2026-07-06 15:34:26
合計ジャッジ時間 3,130 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 30
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include<bits/stdc++.h>
using namespace std;

typedef long long ll;


int N;
int L[200000];
ll K;

ll f(double x){
    double d=1.0/x;
    ll ret=0;
    for(int i=0;i<N;i++)ret+=(ll)(L[i]*d);
    return ret;
}
int main(){
    scanf("%d",&N);
    for(int i=0;i<N;i++)scanf("%d",&L[i]);
    scanf("%lld",&K);

    double lb=0,ub=1e10;
    for(int i=0;i<100;i++){
        double mid=(ub+lb)/2;
        if(f(mid)>=K)lb=mid;
        else ub=mid;
    }
    printf("%.10lf\n",(ub+lb)/2);

    return 0;

}
0