Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long lli;
- typedef pair<lli, int> pli;
- const int N = 1e5;
- int nEpisode, Q;
- int main(){
- scanf("%d %d", &nEpisode, &Q);
- vector<pli> qSum(nEpisode + 1, make_pair(0, 0));
- for(int i = 1; i <= nEpisode; ++i){
- lli cost;
- scanf("%lld", &cost);
- qSum[i] = make_pair(cost + qSum[i - 1].first, i);
- }
- sort(qSum.begin(), qSum.end());
- int currEp = -1;
- vector<pli> listEp(0);
- for(int i = 0; i <= nEpisode; ++i){
- if(qSum[i].second > currEp){
- currEp = qSum[i].second;
- listEp.push_back(qSum[i]);
- }
- }
- for(int q = 1; q <= Q; ++q){
- lli money;
- scanf("%lld", &money);
- vector<pli>::iterator itr = upper_bound(listEp.begin(), listEp.end(), make_pair(money, (int)1e9)) - 1;
- cout << itr -> second << "\n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement