A90509.「USACO 2022.2 Platinum」Sleeping in Class
省选/NOI-
通过率:0%
时间限制:2.00s
内存限制:512MB
题目描述
题目译自 USACO 2022 February Contest, Platinum Problem 2. Sleeping in Class
最近终于线下授课了,奶牛 Bessie 十分兴奋!不幸的是,Farmer John 是一个非常无聊的讲师,因此她经常课堂上睡觉。
Farmer John 注意到了 Bessie 上课走神。他要求班上的另一个学生 Elsie 跟踪记录给定课上 Bessie 睡觉的次数。一共有 N 堂课,Elsie 记录下了 Bessie 在第 i 堂课睡了 ai 次。所有课上 Bessie 一共睡觉的次数最多为 1018。
Elsie 认为自己是 Bessie 的竞争对手,所以她想让 FJ 觉得在每堂课上 Bessie 都一直睡了同样多次——让 FJ 觉得这个问题显然完全是 Bessie 的错,而不是 FJ 有时上课很无聊的问题。
Elsie 修改记录只有以下两种方式:把两堂课的记录合起来,或者把一堂课的记录分成两堂课。例如,如果 a=[1,2,3,4,5],那么如果 Elsie 将第二堂和第三堂课的记录合起来,记录就会变为 [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,4,0,5]。
给定 Q 个候选的 Bessie 最不喜欢的数字 q1,…,qQ,对于每个数字,请帮助 Elsie 计算她至少要操作多少次,才能让记录里的所有数字都变成这个数字。
输入格式
第一行一个整数 N (2≤N≤105)。
第二行 N 个整数 a1,a2,…,aN (1≤ai≤1018)。
第三行一个整数 Q (1≤Q≤105)。
接下来 Q 行,每行一个整数 qi (1≤qi≤1018),表示 Bessie 最不喜欢的数字。
输出格式
对于每个 qi,计算 Elsie 把记录里的每个数都变成 qi 所需要的最小操作次数。如果不能把所有数都变成 qi,输出 −1。
输入输出样例
输入#1
6 1 2 3 1 1 4 7 1 2 3 4 5 6 12
输出#1
6 6 4 5 -1 4 5
说明/提示
对于第 2∼4 组数据,N,Q≤5000。
对于第 5∼7 组数据,所有 ai 最多为 109。
对于第 8∼26 组数据,无附加限制。