This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
long long int cache[41][41];
long long int bino(int n, int r) {
if (r == 0 || n == r)
return 1;
if (cache[n][r])
return cache[n][r];
return cache[n][r] = bino(n - 1, r - 1) + bino(n - 1, r);
}
int main() {
int a, b, n, i, m;
long long int k;
cin >> a >> b >> n >> k;
for (i = 0; (k -= bino(n, i)) > 0ll; i++);
if (a > b) {
m = a;
a = b;
b = m;
}//a > b
double la = 2 * log(a), lb = 2 * log(b), lab = log(a * a + b * b);
printf("%.10f", (i * la + (n - i) * lb - n * lab) + log(a * (double)b / 2));
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |