C - 罰ゲーム 解説
by
potato167
\(3\) 人の出る目の組み合わせは \(\prod(R_{i}-L_{i}+1)\) 通りありますが、これは全て等確率で出ます。
よって、 \(A\) 君が罰ゲームを受けることになる出た目の組み合わせの場合の数を求めて、それを \(\prod(R_{i}-L_{i}+1)\) で割れば良いです。
\(A\) 君が出した目が \(X\) のとき、\(A\) 君が罰ゲームを受ける条件は \(B\) 君と \(C\) 君どちらもが \(X\) より大きい値を出すことです。
例えば \(B\) 君が \(X\) より大きい出目を出す場合の数は、 \(R_{2}\leq X\) なら \(0\) 通り、そうでないなら \(R_{2}+1-\max(L_{2},X+1)\) 通りです。
\(C\) 君の場合も同様に求めることができます。
\(A\) 君の出す目は \(R_{1}-L_{1}+1\) 通りなで、 \(X\) の値を全て試せば良いです。
計算量は \(O(R_{1})\) です。
L=[0]*3
R=[0]*3
ans=0
all_p=1
for i in range(3):
L[i],R[i]=map(int,input().split())
all_p*=(R[i]-L[i]+1)
for X in range(L[0],R[0]+1):
tmp=1
for i in range(1,3):
if R[i]<=X:
tmp=0
else:
tmp*=R[i]+1-max(L[i],X+1)
ans+=tmp
print(ans/all_p)