Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <algorithm>
- #include <vector>
- using namespace std;
- struct Interval
- {
- unsigned long long l,r,n;
- };
- struct Res
- {
- int in,n,p;
- };
- bool ms1 (Res i,Res j) { return (i.in<j.in); }
- bool ms2 (Res i,Res j) { return (i.n<j.n); }
- int main()
- {
- int n;
- cin>>n;
- Interval *in = new Interval[n];
- int l = 1;
- int r = 0;
- for(int i=0; i<n; i++)
- {
- int v;
- cin>>v;
- l = r + 1;
- r += v;
- in[i].n = i + 1;
- in[i].l = l;
- in[i].r = r;
- }
- int m;
- cin>>m;
- vector<Res> res;
- for(int i=0; i<m; i++)
- {
- Res tmp;
- cin>>tmp.in;
- tmp.n = i;
- res.push_back(tmp);
- }
- sort(res.begin(),res.end(),ms1);
- int j = 0;
- for(int i=0; i<n;)
- if(res[j].in>=in[i].l && res[j].in<=in[i].r)
- res[j++].p = in[i].n;
- else i++;
- sort(res.begin(),res.end(),ms2);
- for(int i=0;i<j;i++)
- cout<<res[i].p<<endl;
- //system("pause");
- delete[] in;
- res.clear();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement