P0928

射击游戏

射击游戏

地面上摆放着若干积木,共有 nn 列。第 ii 列从地面起连续摆放了 hih_i 块积木。初始图形的周长等于其最小包围矩形的周长,且各列高度不全相同。

A 和 B 进行射击游戏,A 先手,双方轮流行动。每次行动时,当前玩家先选择一个至少含有一块积木的水平行,并选择从左向右或从右向左射击。随后,本次射击的威力 pp 随机确定为 11、22、33 之一,33 种结果等概率出现。

子弹从所选方向沿该行前进,按照遇到积木的顺序击落至多 pp 块积木。若该行的积木少于 pp 块,则击落该行的全部积木;同一行中的空位不会阻挡子弹。射击结束后,失去支撑的积木会竖直下落,因此每个被击中的列的高度都会相应减少 11。

击落场上最后一块积木的玩家获胜。假设双方都采用使自己获胜概率最大的策略,请求出 A 最终获胜的概率。

输入格式

输入文件最多包含 2525 组测试数据。

每组测试数据包含 22 行。第 11 行包含一个整数 nn,表示积木的列数。第 22 行包含 nn 个正整数 h1,h2,…,hnh_1,h_2,\ldots,h_n,其中 hih_i 表示从左向右数第 ii 列的高度。

输入保证积木的排列符合题目描述,即初始图形的周长等于其最小包围矩形的周长,且各列高度不全相同。

当输入的 n=0n=0 时,表示输入结束,无须处理该行。

输出格式

对于每组测试数据,输出一行 A 获胜的概率,四舍五入保留 66 位小数。

样例输入

3
2 1 1
0

样例输出

0.555556

数据范围

  • 测试数据组数不超过 2525;
  • 1≤n≤61\le n\le 6;
  • 1≤hi≤61\le h_i\le 6;
  • 各列高度不全相同;
  • 初始图形的周长等于其最小包围矩形的周长。

来源与许可

本题为湖南省第六届大学生计算机程序设计竞赛试题「射击游戏」,题面与测试数据整理自 BZOJ。

样例 1

输入

3
2 1 1
0

输出

0.555556