No.662 スロットマシーン
タグ : / 解いたユーザー数 138
作問者 : horiesiniti / テスター : ciel
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回揃う
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。