Submission #15247

#TimeUsernameProblemLanguageResultExecution timeMemory
15247kyma123맛있는 과자 (kriii3_A)C++98
33 / 33
0 ms1840 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...