一些几何图形整齐地排列在矩形网格中。这些图形占据了单行中连续的单元格,每个单元格恰好包含一个图形。每个图形要么是:
- 一个与网格单元完全对齐的正方形,
- 一个内切于网格单元的圆,
- 或者一个底边与网格单元底边重合的等边三角形。
第一个样例输入中的图形及其凸轮廓。
非正式地说,一个排列的凸轮廓(convex contour)是包围所有图形的最短线条。正式地,我们可以将其定义为所有图形并集的凸包的周长。
给定一个图形的排列,求其轮廓的长度。
输入格式
第一行包含一个整数 $n$ ($1 \le n \le 20$),表示图形的数量。接下来一行包含一个由 $n$ 个字符组成的字符串,从左到右描述了排列中的图形。每个字符都是大写字母 “S”、“C” 或 “T”,分别代表正方形、圆或三角形。
输出格式
输出一个浮点数,表示轮廓的长度。如果结果与标准答案的绝对误差或相对误差小于 $10^{-6}$,则该解将被接受。
样例
输入 1
4 TSTC
输出 1
9.088434417
输入 2
3 SCT
输出 2
7.50914177324