1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<string> 5 #include<cstring> 6 #include<algorithm> 7 using namespace std; 8 namespace Moxing{ 9 const int N=1e6+50; 10 int n,m; 11 long long in[N],fs,t; 12 struct main{ 13 main(){ 14 scanf("%d%d",&n,&m); 15 for(int i=0;i<n;i++){ 16 scanf("%lld",&in[i]); 17 fs+=in[i]*i; 18 } 19 if(fs%=n-1)--in[fs]; 20 for(int i=1;i<n;i++){ 21 in[i]+=in[i-1]; 22 } 23 while(m--){ 24 scanf("%d",&t); 25 if(t>=in[n-1]) puts("-1"); 26 else printf("%lld\n",upper_bound(in,in+n,t)-in); 27 } 28 exit(0); 29 } 30 }UniversalLove; 31 } 32 int main(){ 33 Moxing::main(); 34 }
原文:https://www.cnblogs.com/Moxingtianxia/p/11699569.html