4230:求区间长度

时间限制:5 S   /  内存限制:65536 KB
AC:17   /  Submit:44
问题描述

有一个长度为 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

提示说明

建议使用较快的输入输出方式。

相关

厦门大学嘉庚学院第十届编程大赛


Copyright 2016 - 2024 XUJC ACM Team
闽ICP备2020022076号-1