HX1256C. 多序列求和

提交2 通过2
通过率100%
时间限制1000ms
内存限制128MiB

题目描述

题目描述

给出n个数a1a_{1},a2a_{2},⋯,ana_n,和一个空的数列b。对于i=1i=1∼n,进行以下操作:

  • 将1,2,3,⋯,aia_i按从小到大的顺序依次添加到b的尾部。

所有操作完成后,你需要回答Q个询问,每个询问包含1个正整数s,你要输出满足以下条件的最小正整数m的值:∑i=1mbi≥S\sum_{i=1}^{m}b_i\ge S

如果没有满足条件的m,输出−1。

输入格式

第1行,2个正整数n,Q

第2行,n个正整数a1a_{1},a2a_{2},⋯,ana_n

第3∼Q+2行,每行1个整数,表示一个询问

输出格式

输出Q行,对每个询问,用一行输出答案。

4 3
1 2 3 4
4
10
25
3
6
-1

提示

第一次操作a1=1a_{1}=1,数列b=[1]b=[1];第二次操作a2=2a_{2}=2,数列b=[1,1,2]b=[1,1,2];第三次操作a3=3a_{3}=3,数列b=[1,1,2,1,2,3]b=[1,1,2,1,2,3];第四次操作a4=4a_{4}=4,数列b=[1,1,2,1,2,3,1,2,3,4]b=[1,1,2,1,2,3,1,2,3,4]。

对第1个询问S=3S=3:前3个数1+1+2=4≥S1+1+2=4\ge S,所以m=3m=3是满足条件的最小值。

对第2个询问S=10S=10:前6个数1+1+2+1+2+3=10≥S1+1+2+1+2+3=10\ge S,所以m=6m=6是满足条件的最小值。

对第3个询问S=25S=25:b数列所有数总和20<S20\lt S,所以没有满足条件的m。

1 1
1
1
1
1 1  
1  
1
1
5 3
1000000 1000000 1000000 1000000 1000000
1
100000000000
200000000000
1
447214
632456

数据范围

前50%数据:1≤Q≤1001\le Q\le 100;

前70%数据:所有aia_i的总和不超过10510^{5}。

100%数据:

1≤n≤1051\le n\le 10^{5};1≤Q≤1051\le Q\le 10^{5};

1≤ai≤1061\le a_i\le 10^{6};1≤S≤10181\le S\le 10^{18}。