Ümumi Poker
Sizin N×M kartdan ibarət bir dəstəniz var. Bu dəstədəki hər kartın bir rütbəsi var. Rütbələr 1 ilə M arasında dəyişir və hər rütbədən N kart mövcuddur.
Rütbəsi m olan kartı m ilə təmsil edirik.
Dəstədən təsadüfi olaraq L kartlıq bir əl çəkə bilərsiniz. Əgər bu əl müəyyən bir naxışa uyğun gəlirsə, sizə bonus verilir. Naxış aşağıdakı kimi təsvir olunur:
hand_pattern = card_pattern1 ' ' card_pattern2 ' ' ... ' ' card_patternL
card_pattern = '*' | var_plus
var_plus = variable | var_plus '+'
variable = 'a' | 'b' | 'c'
hand_pattern
Bir əl hand_pattern-ə uyğun gəlir, əgər hand_pattern-dəki hər bir card_pattern əlindəki fərqli bir kartla uyğun gəlirsə.
card_pattern
Əgər card_pattern ulduz ('*') işarəsidirsə, istənilən kartla uyğun gəlir. 'a', 'b' və 'c' simvolları dəyişənləri göstərir və eyni dəyişənin bütün halları eyni rütbədəki kartlarla uyğun gəlir. Bir dəyişən və ardınca plus ('+') simvolları ilə olan card_pattern, dəyişənə uyğun rütbə və plus simvollarının sayı qədər olan kartla uyğun gəlir. Verilmişdir ki, əgər bir hand_pattern dəyişən və bəzi plus simvolları ilə olan bir card_pattern ehtiva edirsə, o həmçinin həmin dəyişən və daha az sayda (sıfır da daxil olmaqla) plus simvolları ilə olan card_patterns ehtiva edir. Məsələn, əgər 'a+++' bir hand_pattern-də görünürsə, card_patterns 'a', 'a+' və 'a++' da həmin hand_pattern-də görünür.
Fərqli dəyişənlərin hansı rütbələri ifadə etdiyinə dair heç bir məhdudiyyət yoxdur. Məsələn, 'a' və 'b' eyni rütbədəki kartlarla uyğun gələ bilər və ya gəlməyə bilər.
Bəzi nümunə hand_patterns göstəririk. Naxış
a * b a b
əl ilə uyğun gəlir:
3 3 10 10 9
burada 'a' və 'b' 3 və 10 (və ya 10 və 3) mənasını verir. Bu naxış həmçinin aşağıdakı əllə də uyğun gəlir.
3 3 3 3 9
Bu halda, həm 'a', həm də 'b' 3 mənasını verir. Naxış
a a+ a++ a+++ a++++
aşağıdakı əllə uyğun gəlir.
4 5 6 7 8
Bu halda, 'a' 4 mənasını verməlidir.
Sizin vəzifəniz, dəstədən təsadüfi çəkilən bir əlin verilmiş hand_pattern-ə uyğun gəlmə ehtimalını hesablayan bir proqram yazmaqdır.
Giriş verilənləri
Giriş bir sıra datasetlərdən ibarətdir. Hər bir dataset aşağıdakı kimi formatlanır.
N M Lcard_pattern_1 card_pattern_2 ... card_pattern_L
Birinci sətir üç müsbət tam ədəd N, M və L ibarətdir. N hər rütbədəki kartların sayını, M rütbələrin sayını və L əldeki kartların sayını göstərir. N, M və L aşağıdakı kimi məhdudlaşdırılır.
1 ≤ N ≤ 71 ≤ M ≤ 601 ≤ L ≤ 7L ≤ N×M
İkinci sətir bir hand_pattern təsvir edir.
Girişin sonu tək boşluqla ayrılmış üç sıfırdan ibarət bir sətirlə göstərilir.
Çıxış verilənləri
Hər bir dataset üçün, hand_pattern-ə uyğun gələn bir əlin ehtimalını ifadə edən onluq kəsr olan bir sətir çıxarın.
Çıxış 10^{−8}-dən böyük olmayan bir səhv ehtiva etməməlidir.
Çıxışda başqa simvollar olmamalıdır.