解题思路:记录每一组的编号上界,从左侧开始搜寻,如果小于或等于某组的边界,就是在该组。
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int n;
cin>>n;
int index=0;
vector<int>a;
vector<int>b;
for(int i=0;i<n;i++)
{
int temp;
cin>>temp;
index+=temp;
a.push_back(index);
}
int Q;
cin>>Q;
for(int i=0;i<Q;i++)
{
int temp;
cin>>temp;
b.push_back(temp);
}
for(int i=0;i<Q;i++)
{
for(int j=0;j<n;j++)
{
if(b[i]<=a[j])
{
cout<<j+1<<endl;
break;
}
}
}
return 0;
}