#include #include #include #include #include #include #include #include #include #include using namespace std; // probability s -> t double prob(vector& P, int s, int t, int len){ s <<= 1; t <<= 1; if( (s|t) > s ) return 0.0; double ret = 1.0; int mask = 0b111; for(int i=1; i<=len; i++){ if( (s&(1<>(i-1) ) & mask; if( my_s == 0b010 ){ if( (t&(1<& P, vector>& memo, int s, int len, int y){ if(memo[y][len] >= 0) return memo[y][len]; if(y==0){ return len; } //部分集合列挙 double ret = 0.0; int sub = s; do{ double p = prob(P, s, sub, len); double E_ = 0.0; int last_len = 0; for(int i=0; i> i) & 1){ last_len++; }else{ E_ += dfs(P, memo, (1< 0){ E_ += dfs(P, memo, (1<> A; vector P(3); cin >> P[0] >> P[1] >> P[2]; vector> memo(25, vector(15, -1)); double ans = dfs(P,memo, (1<<14)-1, 14, 80-A) * 2; printf("%.10f\n", ans); return 0; }