#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define BET(a,b,c) ((a)<=(b)&&(b)<(c)) #define FOR(i,n) for(int i=0,i##_end=(int(n));i VI; typedef vector VVI; int main() { int N,K; cin>>N>>K; vector dp1(6*N+1); vector dp2(6*N+1); dp1[0] = 1.0; FOR(i,N){ vector next(6*N+1); FOR(j,SZ(dp1)){ if(dp1[j]){ for(int k=1;k<=6;k++) next[j+k] += dp1[j] / 6.0; } } dp1.swap(next); } dp2[0] = 1.0; FOR(i,N){ vector next(6*N+1); FOR(j,SZ(dp2)){ if(dp2[j]){ if(i < K){ for(int k=4;k<=6;k++) next[j+k] += dp2[j] / 3.0; }else { for(int k=1;k<=6;k++) next[j+k] += dp2[j] / 6.0; } } } dp2.swap(next); } double ans = 0 ; FOR(i,SZ(dp1)) FOR(j,SZ(dp2)){ if(i < j) ans += dp1[i] * dp2[j]; } printf("%.10f\n", ans); return 0; }