No.662 スロットマシーン

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 小数誤差許容問題 絶対誤差または相対誤差が$10^{-1}$ 以下
タグ : / 解いたユーザー数 79
作問者 : horiesinitihoriesiniti / テスター : cielciel
0 ProblemId : 2090 / 出題時の順位表

Note

この問題はハッカーランクで公開した問題をyukicoder、ハッカーランク双方の許可をえて公開しております

問題文

貴方はスロットマシーンの開発者です。

このスロットマシーンには5種類の絵柄があり、3列*3行でボタンを押すと各列が止まる普通のスロットマシーンです。 当然普通に横3行か斜め2種類で絵柄が3つそろえばコインが返ってきます。

貴方には2つの仕事が回ってきました

1つ目の仕事はどの列もリールがどの位置で止まるかは等確率であるとしたうえで、1回のゲームでスロットマシーンが幾らのコインを客に返すか期待値を求めることになりました。(誤差は0.1まで許される。)

2つ目の仕事は全てのありえるリールの止まり方を検討した時、どの絵柄が何回そろうか全てのケースから単純集計したものを絵柄ごとに算出すること。(説明が分かりにくければサンプルインプットから推測すること)

与えられるデータからこの二つの仕事を計算するプログラムを書いてください。

同時に揃った場合は、それぞれの合計分をもらえるものとする

入力

$str_1$ $coin_1$
$str_2$ $coin_2$
$str_3$ $coin_3$
$str_4$ $coin_4$
$str_5$ $coin_5$
$n_1$
$A_1$
$\dots$
$A_{n_1}$
$n_2$
$B_1$
$\dots$
$B_{n_2}$
$n_3$
$C_1$
$\dots$
$C_{n_3}$

$str_i$ $coin_i$は絵柄の名前とその絵柄がそろったときの帰ってくるコインの枚数である。

$n_1$は1列目のリールの長さであり、$A_{ni}$は1列目のリールのi段目の絵柄を現す名前である。

$n_2$は2列目のリールの長さであり、$B_{ni}$は2列目のリールのi段目の絵柄を現す名前である。

$n_3$は3列目のリールの長さであり、$C_{ni}$は3列目のリールのi段目の絵柄を現す名前である。

$n_i$の銘柄は、$str_j$のどれかに含まれる。

$3\le n_1 ,n_2 ,n_3\le5000$

絵柄の名前は半角英数字(大文字・小文字あり)で1文字以上10文字以下、$coin_i$の枚数は1001以下の自然数である。

出力

$a$
$U_1$
$U_2$
$U_3$
$U_4$
$U_5$

aは一回リールを回した時いくらコインが返ってくるか(投入するコインの枚数は考えなくてよい)の期待値。

$U_i$は全部のリールの止まり方を試した時絵柄$str_i$が何度揃うかの単純合計を出力せよ

サンプル

サンプル1
入力
Bell 5
star 10
heart 20
spade 50
diamond 100
6
Bell
diamond
star
spade
star
Bell
6
Bell
heart
star
Bell
heart
diamond
6
spade
heart
spade
star
Bell
diamond
出力
3.240741
20
10
0
0
5

スロットマシーンを一回回した時帰ってくるコイン枚数の期待値は3.240741。

スロットマシーンの全止まり方を試した時Bellは20回 starは10回 heartは0回、spade 0回 diamondは5回揃う

提出ページヘ
下のフォームでの入力は、テキストボックスにフォーカスがない場合は、(Onにしている場合)ショートカットキー・スマートサブミットの影響を受けるので、必要なら提出ページに遷移してください。

言語
問題によって提出できない言語があります。参考
ソースコード
ソースコードのテキストボックスに文字がある場合はファイルは無視されます。
テキストボックスで提出するとCR(\r)が除去されますが、ファイルで提出すると除去されません。