#atabc470e. Concentration

Concentration

得分: 450450

问题陈述

高桥正在玩一个类似于记忆匹配游戏的接龙游戏。

一共有 2N2N 张牌。每张牌的正面都写着一个数字,背面什么也没写。
每张 ii 满足 1iN1 \leq i \leq N ,正好有两张牌上写着 AiA_iAiA_i 是一对不同的)。

高桥用这些牌进行游戏,程序如下。

  • 2N2N 洗牌,牌面向下摆放。
  • 设置生命LL分数00
  • 重复以下步骤,直到生命值变为 00 或桌面上没有牌为止:
    • 在桌面上选择一张面朝下的牌,将其翻转朝上,查看上面写的数字 XX
    • 在桌子上选择一张正面朝下的牌,将其正面朝上,然后查看上面写着的数字 YY
    • 如果是 X=YX=Y ,则从桌上移走这两张牌,并增加分数 XX
    • 如果是 XYX\neq Y ,则再次将两张牌正面朝下,生命值减少 11

求当高桥在游戏结束时采取最优行动,使游戏结束时的得分最大化时,游戏结束时得分的期望值。

下面是这盘棋更正式的说明。

  • 高桥知道下面描述的游戏规则。
  • 高桥知道 A1,,ANA_1,\dots,A_N 的值。
  • 假设 BB 是一个序列,由长度为 2N2N 的序列 (A1,A1,A2,A2,,AN,AN)(A_1,A_1,A_2,A_2,\ldots,A_N,A_N) 均匀随机地选择一个置换得到。
  • 最初,高桥不知道 BB 的任何值。一旦他知道了 BiB_i 的值,就会完全记住它。
  • 假设生命为 LL ,分数为 00SS1,2,3,,2N\\{1,2,3,\ldots,2N\\} 。高桥总是知道这些值。
  • 重复下面的步骤,直到生命值变成 00SS 变成空为止:
    • 根据到此为止所获得的信息,高桥从 SS 中选择一个元素,并称之为 ii
    • BiB_i 的值被揭示,高桥得知了它。
    • 根据到此为止所获得的信息(包括 BiB_i 的值),高桥从 SiS\setminus\\{i\\} 中选择一个元素,并将其称为 jj
    • BjB_j 的值被揭示出来,高桥得知了它。
    • 如果是 Bi=BjB_i=B_j ,则从 SS 中删除 iijj ,并加上 BiB_i 的分。
    • 如果是 BiBjB_i \neq B_j ,则减少生命值 11
  • 高桥的最优行动是使对局结束时的期望值最大化。

约束条件

  • 1N2001 \leq N \leq 200
  • 1L2001 \leq L \leq 200
  • 1A1<A2<<AN1051 \leq A_1<A_2<\dots<A_N \leq 10^5
  • 所有输入值均为整数。

输入

输入内容由标准输入法提供,格式如下

NN LL A1A_1 A2A_2 \dots ANA_N

输出

输出答案
如果与真实答案的绝对误差或相对误差不超过 10510^{-5} ,则认为输出正确。


输入示例 1

3 2
1 2 3

样本输出 1

3.8666666667

例如,游戏可以如下进行。为了区分这六张牌,我们称之为 ABCDEF

  • 游戏开始时的生命值为 22 ,得分为 00
  • 将牌 A 翻面。上面写着 33
  • 将牌 B 正面朝上。上面写着 22
  • 由于写着不同的数字,再次将两张牌正面朝下,生命值减少 1111
  • C 翻面。上面写着 33
  • 将牌 A 正面朝上。上面写着 33
  • 因为写的是相同的数字,所以将两张牌都从桌上拿开,分数增加 3333
  • 将牌 D 正面朝上。上面写着 11
  • 将纸牌 E 正面朝上。上面写着 22
  • 由于写的数字不同,再次将两张牌正面朝下,生命值减少 1100
  • 由于生命值变成了 00 ,游戏结束。得分是 33

请注意,在这个顺序中将牌 C 面朝上之后,高桥可以选择 "根据牌 C 正面写有 33 的事实,将另一张已知写有 33 的牌 A 面朝上"。


输入示例 2

5 2
2 3 5 7 101

样本输出 2

17.8560846561

输入样本 3

20 10
10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200

输出样本 3

770.7122293087