题目描述
小明需要调试一段有n行代码,其中有m行有bug(位置锁定为a1,a2,...,am,且1≤a1<a2<...<am≤n)。每次调试可选择运行前i行代码(从第1行顺序运行到第i行),耗时i秒,随后一次性修复这i行中的所有现存bug,修复时间为这i行中现存bug数量的四次方(x4秒,x为现存bug数)。修复后,这i行中的bug将被彻底清除。求完成所有bug修复的最短总耗时。
输入格式
- 第一行:两个整数n和m(1≤m≤n≤2×105)。
- 第二行:m个整数a1,a2,...,am(表示有bug的行号,按升序排列)。
输出格式
一行,一个整数,表示最短总耗时。
样例
输入
3 2
1 3
输出
6
样例2
输入
20 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
输出
221
样例解释
对于第一个样例,先运行前1行(耗时1秒),修复1个bug(耗时1⁴=1秒);再运行前3行(耗时3秒),修复1个bug(耗时1⁴=1秒),总耗时1+1+3+1=6秒。
对于第二个样例,通过分阶段运行前1, 2, ..., 13, 14, 16, 18, 20行达到最优解。
数据分布
30% 的样例,1≤m≤n≤10。 1≤a1,a2,...,am≤n
60% 的样例,1≤m≤n≤1000。 1≤a1,a2,...,am≤n
100% 的样例,1≤m≤n≤2×105。 1≤a1,a2,...,am≤n