网站页面
当前课程
成员
General
主题 1
主题 2
主题 4
主题 5
主题 6
主题 7
主题 8
主题 9
主题 10
主题 11
主题 12
主题 13
主题 14
主题 15
主题 16
主题 17
主题 18
主题 19
主题 20
扑克牌
成绩 | 0 | 开启时间 | 2013年01月1日 星期二 17:30 |
折扣 | 0.8 | 折扣时间 | 2013年01月1日 星期二 17:30 |
允许迟交 | 是 | 关闭时间 | 2013年01月1日 星期二 17:30 |
输入文件 | card.in | 输出文件 | card.out |
题目描述:
Rainbow把一副扑克牌(54张)随机洗开,倒扣着放成一摞。然后Admin从上往下依次翻开每张牌,每翻开一张黑桃、红桃、梅花或者方块,就把它放到对应花色的堆里去。
Rainbow想问问Admin,得到A张黑桃、B张红桃、C张梅花、D张方块需要翻开的牌的张数的期望值E是多少?
特殊地,如果翻开的牌是大王或者小王,Admin将会把它作为某种花色的牌放入对应堆中,使得放入之后E的值尽可能小。
由于Admin和Rainbow还在玩扑克,所以这个程序就交给你来写了~
输入格式:
输入仅由一行,包含四个用空格隔开的整数,A,B,C,D。
输出格式:
输出需要翻开的牌数的期望值E,四舍五入保留3位小数。
如果不可能达到输入的状态,输出-1.000。
样例输入1:
1 2 3 4
样例输入2:
15 15 15 15
样例输出1:
16.393
样例输出2:
-1.000
数据范围:
对于100%的数据,0<=A,B,C,D<=15