C1804 [CQOI2010]鼹鼠

内存限制:256 MB 时间限制:1000 ms

题目描述

Hilbert 鼹鼠住在 Hilbert 地洞里——地洞的边界是一条 $n$ 阶 Hilbert 曲线 $H_n$。Hilbert 曲线的定义如下:$H_1$ 是一个上端缺口的单位正方形;$H_n$ 由四份 $H_{n-1}$ 组成,其中左下和右下两份没有任何变化,而左上的那一份逆时针旋转了 $90$ 度,而右上的那一份顺时针旋转了 $90$ 度。这四份 $H_{n-1}$ 用三条单位长度的线段连接起来构成了 $H_n$。

你想捉一只 Hilbert 鼹鼠来玩,所以往地洞里使劲倒水想把它们赶出来。不过,由于地洞里有空气,无论你怎么倒水,有些地方总是淹不到的(假设水和空气都不可压缩)。输入 Hilbert 曲线的阶数 $n$ 和地面的倾斜角 $α$,你的任务是计算能淹没到的面积。

注意,只有当水位严格高于一个障碍物时,水才能越过它往下流。更多细节可以参考下面的例子。

输入格式

输入仅包含两个整数 $n$,$α$。

输出

输出仅一行,即被淹没的面积,输出保留小数点后 $6$ 位。

样例

样例输入 1

5 30

样例输出 1

190.803848

样例输入 2

3 45

样例输出 2

15.500000

样例输入 3

4 10

样例输出 3

91.573592

样例输入 4

3 0

样例输出 4

26.000000

提示

数据范围

$ \begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|} \hline编号 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 \\ \hline n & 1 & 2 & 3 & 4 & 4 & 6 & 8 & 10 & 12 & 12 \\ \hline α & [0,90) & [0,90) & [0,90) & 0 & 45 & [0,90) & [0,90) & [0,90) & 0 & [0,90) \\ \hline \end{array}$