#arc0332. [arc033_2]メタ構文変数

[arc033_2]メタ構文変数

问题文

foofoo」、「barbar」、「hogehoge」等特指不具有特殊含义的变量名的字符串称为“元语法变量”。

高桥君正在研究元语法变量。他发现元语法变量有许多不同种类,并为每个找到的元语法变量分配了一个编号。高桥君阅读了AntAntBugBug的源代码,并列举了它们各自源代码中出现的元语法变量编号。为了确定AntAntBugBug使用的元语法变量集有多相似,他决定计算它们的“Jaccard系数”。定义两个集合SAS_ASBS_B,分别表示AntAntBugBug的源代码中出现的元语法变量集合,则Jaccard系数可以通过以下公式计算:

  • SASB/SASB||S_{A} ∩ S_{B}|| / ||S_{A} ∪ S_{B}||

其中,S||S||表示集合SS的元素数。换句话说,

  • Jaccard系数是“在SAS_ASBS_B中同时出现的元素的数量”除以“至少在SAS_ASBS_B中出现的元素的数量”。

输入

输入从标准输入中按以下格式给出:

NAN_A NBN_B A1A_1 A2A_2 ... ANAA_{N_A} B1B_1 B2B_2 ... BNBB_{N_B}

  • 第一行包含两个整数NA(1NA105)N_A (1 \leq N_A \leq 10^5)NB(1NB105)N_B (1 \leq N_B \leq 10^5),以空格分隔。表示AntAnt的源代码中有NAN_A个元语法变量,BugBug的源代码中有NBN_B个元语法变量。
  • 第二行包含NAN_A个整数,以空格分隔,表示AntAnt源代码中出现的元语法变量的编号。其中第ii个整数Ai(1Ai109)A_i (1 \leq A_i \leq 10^9)表示AntAnt源代码中出现了第AiA_i个元语法变量。保证当pqp \neq q时,ApAqA_p \neq A_q
  • 第三行包含NBN_B个整数,以空格分隔,表示BugBug源代码中出现的元语法变量的编号。其中第ii个整数Bi(1Bi109)B_i (1 \leq B_i \leq 10^9)表示BugBug源代码中出现了第BiB_i个元语法变量。保证当pqp \neq q时,BpBqB_p \neq B_q

部分得分

本问题包含部分得分。

  • 如果对所有满足NA,NB1000N_A, N_B \leq 1000Ai,Bi105A_i, B_i \leq 10^5的测试用例都给出正确答案,则得到40分。
  • 如果对所有满足Ai,Bi105A_i, B_i \leq 10^5的测试用例都给出正确答案,则得到70分。

输出

请输出AntAntBugBug的源代码中出现的元语法变量集合的Jaccard系数,以一行输出。输出可以包含任意位小数,但不能包含超过10610^{-6}的绝对误差。请在末尾添加换行符。


输入示例1


3 2
1 3 5
1 2

输出示例1


0.2500000000

AntAntBugBug的源代码中,只有编号为1的元语法变量同时出现在两个代码中,而至少在其中一个代码中出现的元语法变量是1、2、3、5共4个。

因此,Jaccard系数为1/41/4


输入示例2


9 10
11 2 33 4 55 6 77 8 99
10 11 14 19 55 1000000000 4 5 7 8

输出示例2


0.2666666667