Submission #19095

#TimeUsernameProblemLanguageResultExecution timeMemory
19095Namnamseo맛있는 과자 (kriii3_A)C++14
10 / 33
0 ms1216 KiB
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;

typedef long long ll;

ll combi[50][50];

void bc(){
    combi[0][0]=1;
    int i,j;
    for(i=1;i<=40;++i){
        combi[i][0]=combi[i][i]=1;
        for(j=1;j<i;++j) combi[i][j]=combi[i-1][j-1]+combi[i-1][j];
    }
}

typedef pair<double,ll> pd;

pd asdf[50];

int main()
{
    bc();
    int a,b,n;
    ll k;
    scanf("%d%d%d%I64d",&a,&b,&n,&k);
    double r1=2*log(a)-log(a*a+b*b);
    double r2=2*log(b)-log(a*a+b*b);
    double s0=log(a)+log(b)-log(2);
    int i;
    for(i=0; i<=n; ++i){
        asdf[i]={r1*i + r2*(n-i), combi[n][i]};
    }
    sort(asdf,asdf+n+1,greater<pd>());
    int ind=0;
    for(i=0; i<=n; ++i){
        ind += asdf[i].second;
        if(k<=ind){
            printf("%.12f\n",asdf[i].first + s0);
            break;
        }
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...