#include #include #include #include #include #include #include #include #include #include static const int MOD = 1000000007; using ll = long long; using u32 = uint32_t; using namespace std; template constexpr T INF = ::numeric_limits::max() / 32 * 15 + 208; int main() { int n; double p, q; cin >> n >> p >> q; if(p == 1){ puts("1"); return 0; } double p1 = 0, q1 = 1, p2 = p, q2 = q; while (n > 0){ if (n&1) { double pp = p1+q1*q1*p2/(1-p1*p2); double qq = q1*q2/(1-p1*p2); p1 = pp, q1 = qq; } double pp = p2+q2*q2*p2/(1-p2*p2); double qq = q2*q2/(1-p2*p2); p2 = pp, q2 = qq; n >>= 1; } printf("%.15lf\n", p1); return 0; }