Submission #1913765
Source Code Expand
#include <iostream> #include <algorithm> using namespace std; long double p[100], q[100]; int bit[6]; pair<long double, long double> tourist(int v) { if (bit[v - 1] == 0) { if (fabs(p[v] - q[v]) < 0.000001)return make_pair(0.5, 0.5); if (p[v] > q[v])return make_pair(1, 0); return make_pair(0, 1); } return make_pair(p[v] / (p[v] + q[v]), q[v] / (p[v] + q[v])); } long double solve(long double P) { long double sum = 0; for (int i = 1; i <= 6; i++) { pair<long double, long double> A = tourist(i); sum += A.first*P*p[i]; sum += A.second*(1.0L - P)*q[i]; } return sum; } long double solve() { long double L = 0, R = 1, c1, c2, maxn = 1; for (int i = 0; i < 100; i++) { c1 = (L + L + R) / 3; c2 = (L + R + R) / 3; long double d1 = solve(c1), d2 = solve(c2); if (d1 < d2) { maxn = d1; R = c2; } else { maxn = d2; L = c1; } } return maxn; } int main() { for (int i = 1; i <= 6; i++) { cin >> p[i]; p[i] /= 100; } for (int i = 1; i <= 6; i++) { cin >> q[i]; q[i] /= 100; } long double ans = 0; for (int i = 0; i < 64; i++) { for (int j = 0; j < 6; j++)bit[j] = (i / (1 << j)) % 2; ans = max(ans, solve()); } printf("%.20Lf\n", ans); return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Dice Game |
User | E869120 |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 1229 Byte |
Status | CE |
Compile Error
./Main.cpp: In function ‘std::pair<long double, long double> tourist(int)’: ./Main.cpp:9:23: error: ‘fabs’ was not declared in this scope if (fabs(p[v] - q[v]) < 0.000001)return make_pair(0.5, 0.5); ^