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);
                       ^