AcWing 5385. 餐厅
原题链接
中等
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int N = 200010;
int n,q;
typedef long long LL;
LL s[N];
int work(LL sum)
{
int l = 0 , r = n;
while(l< r)
{
LL mid = (l+r+1) >> 1;
if (s[mid] <= sum) l = mid;
else r = mid - 1;
}
return n - r;
}
int main()
{
scanf("%d%d",&n,&q);
for (int i = 1 ;i <= n ; i++)
{
int x;
scanf("%d",&x);
s[i] = s[i-1] + x;
}
LL sum = 0;
while(q--)
{
LL b;
scanf("%lld",&b);
sum+=b;
if (sum>=s[n]) sum = 0 ;
printf("%d\n",work(sum));
}
return 0;
}