问题描述 |
---|
有一个长度为 n 的数组 a,你需要找到一个的区间 [L,R] 满足: sum(aL,aL+1,... ,aR-1,aR) - min(aL,aL+1,... ,aR-1,aR) ≥ x,其中 sum 表示求和,min 表示求最小值。 求满足这个条件的区间的最小长度,即 R - L + 1 的最小值。 |
输入描述 |
第一行是一个正整数 n 表示数组的大小。(1 ≤ n ≤ 3000) 接下来 n 个数字 ai 分别表示数组的元素。(1 ≤ ai ≤ 1e9) 然后是 T 组询问,每次询问一个 x 含义如描述。(1 ≤ T ≤ 1e5,1 ≤ x ≤ 1e9) |
输出描述 |
针对每次询问,输出满足这个条件的区间的最小长度,如果不存在这样的区间,输出-1。 |
样例输入复制样例 |
5 1 2 3 4 5 3 4 14 15 |
样例输出 |
2 5 -1 |
提示说明 |
建议使用较快的输入输出方式。 |
相关 |