Submission #15190

#TimeUsernameProblemLanguageResultExecution timeMemory
15190xhae맛있는 과자 (kriii3_A)C++14
33 / 33
0 ms1220 KiB
#include <cstdio>
#include <algorithm>
#include <cmath>

using namespace std;

long long ptri[60][60];

int main()
{
  int a,b;
  long long N, K;
  scanf("%d%d%lld%lld",&a,&b,&N,&K);
  for (int i = 0; i <= 50; i++) {
    ptri[i][0] = ptri[i][i] = 1;
    for (int j = 1; j < i; j++) {
      ptri[i][j] = ptri[i-1][j] + ptri[i-1][j-1];
    }
  }
  if (a < b) swap(a,b);
  // now a > b
  double A = log((double)(a*a)/(a*a+b*b));
  double B = log((double)(b*b)/(a*a+b*b));
  // A > B
  for (int acnt = 0; acnt <= N; acnt++) {
    K -= ptri[N][acnt];
    if (K <= 0) {
      printf("%.15f\n", log(a*b/2.0) + A * (N-acnt) + B*acnt);
      return 0;
    }
  }
  return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...