Submission #15205

#TimeUsernameProblemLanguageResultExecution timeMemory
15205tonyjjw맛있는 과자 (kriii3_A)C++98
33 / 33
0 ms1224 KiB
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include <vector> #include <algorithm> using namespace std; int a, b, n; long long k; long long c[64][64]; int main(void) { c[0][0] = 1; for (int i = 1; i < 64; i++) { c[i][0] = 1; for (int j = 1; j <= i; j++) { c[i][j] = c[i-1][j-1] + c[i-1][j]; } } scanf("%d %d %d %lld", &a, &b, &n, &k); double area = log((double) a * b / 2.); if (a == b) { printf("%.10lf\n", (double) n * log(0.5) + area); } else { if (a < b) swap(a, b); long long rank_sum = 0; double ans = 0.0; double ra = (double)a * a / (a * a + b * b); double rb = (double)b * b / (a * a + b * b); for (int i = 0; i <= n; i++) { rank_sum += c[n][i]; if (rank_sum >= k) { ans = (double) (n-i) * log(ra) + i * log(rb) + area; break; } } printf("%.10lf\n", ans); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...