luogu#P8193. [USACO22FEB] Sleeping in Class P

[USACO22FEB] Sleeping in Class P

题目描述

最近终于线下授课了,奶牛 Bessie 十分兴奋!不幸的是,Farmer John 是一个非常无聊的讲师,因此她经常课堂上睡觉。

Farmer John 注意到了 Bessie 上课走神。他要求班上的另一个学生 Elsie 跟踪记录给定课上 Bessie 睡觉的次数。一共有 NN 堂课,Elsie 记录下了 Bessie 在第 ii 堂课睡了 aia_i 次。所有课上 Bessie 一共睡觉的次数最多为 101810^{18}

Elsie 认为自己是 Bessie 的竞争对手,所以她想让 FJ 觉得在每堂课上 Bessie 都一直睡了同样多次——让 FJ 觉得这个问题显然完全是 Bessie 的错,而不是 FJ 有时上课很无聊的问题。

Elsie 修改记录只有以下两种方式:把两堂课的记录合起来,或者把一堂课的记录分成两堂课。例如,如果 a=[1,2,3,4,5]a=[1,2,3,4,5],那么如果 Elsie 将第二堂和第三堂课的记录合起来,记录就会变为 [1,5,4,5][1,5,4,5]。如果 Elsie 继续选择让第三堂课的记录分为两堂,记录就可能变为 [1,5,0,4,5],[1,5,1,3,5],[1,5,2,2,5],[1,5,3,1,5][1,5,0,4,5],[1,5,1,3,5],[1,5,2,2,5],[1,5,3,1,5][1,5,4,0,5][1,5,4,0,5]

给定 QQ 个候选的 Bessie 最不喜欢的数字 q1,,qQq_1,\ldots,q_Q,对于每个数字,请帮助 Elsie 计算她至少要操作多少次,才能让记录里的所有数字都变成这个数字。

输入格式

第一行一个整数 NN2N1052\le N\le 10^5)。

第二行 NN 个整数 a1,a2,,aNa_1,a_2,\ldots, a_N1ai10181\le a_i\le 10^{18})。

第三行一个整数 QQ1Q1051\le Q\le 10^5)。

接下来 QQ 行,每行一个整数 qiq_i1qi10181\le q_i\le 10^{18}),表示 Bessie 最不喜欢的数字。

输出格式

对于每个 qiq_i,计算 Elsie 把记录里的每个数都变成 qiq_i 所需要的最小操作次数。如果不能把所有数都变成 qiq_i,输出 1-1

6
1 2 3 1 1 4
7
1
2
3
4
5
6
12
6
6
4
5
-1
4
5

提示

【样例解释】

Elsie 需要至少 44 次修改才能让记录里的所有数都变成 33

$$\begin{aligned} &\ 1\ 2\ 3\ 1\ 1\ 4\\ \rightarrow&\ 3\ 3\ 1\ 1\ 4\\ \rightarrow&\ 3\ 3\ 1\ 5\\ \rightarrow&\ 3\ 3\ 6\\ \rightarrow&\ 3\ 3\ 3\ 3\\ \end{aligned} $$

Elsie 不可能把记录中的所有数都变成 55,因此输出 1-1。这是正确的。

【数据范围】

  • 对于第 242\sim 4 组数据,N,Q5000N,Q\le 5000
  • 对于第 575\sim 7 组数据,所有 aia_i 最多为 10910^9
  • 对于第 8268\sim 26 组数据,无附加限制。