题目背景
本题自动开启 O2 优化,时间限制 2s。
题目描述
您需要构造一棵二叉树,根节点权值为 n,每个节点都有 2 个或 0 个儿子,且满足如下限制:
若该点有两个儿子,该点权值需等于两个儿子的权值之积。
若该点没有儿子,则该节点权值需为质数。
同时会给出 m 条限制 ai,表示树上的权值不能出现 ai。
您构造的二叉树需要使:令 k 为节点数, i=1∑kj=i∑kvallca(i,j) 最小,其中 vali 表示第 i 个点的权值,lca(i,j) 表示 i,j 的最近公共祖先。
输入格式
第一行两个正整数 n,m。
之后一行 m 个数 ai。
输出格式
一行一个数,表示最小的 i=1∑kj=i∑kvallca(i,j)。
无解输出 -1
。
提示
样例解释:
样例 1:最优方案如下:

其中,黑色数字代表权值,红色数字代表标号(您不需要对树标号,这里的标号只是为了更方便解释样例)。
ans=vallca(1,1)+vallca(1,2)+vallca(1,3)+vallca(2,2)+vallca(2,3)+vallca(3,3)
=val1+val1+val1+val2+val1+val3
=4+4+4+2+4+2=20
Subtask 1(5 分): n≤20。
Subtask 2(12 分):n≤106。
Subtask 3(28 分):n≤1012。
Subtask 4(20 分):m=0。
Subtask 5(35 分):n≤1015。
对于所有数据 2≤n≤1015,0≤m≤min(n,105),2≤ai≤n, 且答案不超过 4×1018。