餐厅
题目 餐厅
思路分析
代码实现
#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
typedef long long LL;
const int N=2e5+10;
LL s[N];
int n,q;
int find(LL sum){
int l=0,r=n;
while(l<r){
int m=l+r+1>>1;
if(s[m]<=sum) l=m;
else r=m-1;
}
return n-r;
}
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>n>>q;
for(int i=1;i<=n;i++){
int x;cin>>x;
s[i]=s[i-1]+x;
}
LL sum=0;
while(q--){
LL x;cin>>x;
sum+=x;
if(sum>=s[n]) sum=0;
cout<<find(sum)<<endl;
}
return 0;
}
同类题型
视频讲解
⬅️ 赶牛入圈 🏠 00-刷题理模型 ➡️ 前缀和与差分相关模型
💬 评论