Advertisement
mickypinata

TOI14: NBK48

Nov 20th, 2020
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.92 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef long long lli;
  5. typedef pair<lli, int> pli;
  6.  
  7. const int N = 1e5;
  8.  
  9. int nEpisode, Q;
  10.  
  11. int main(){
  12.  
  13.     scanf("%d %d", &nEpisode, &Q);
  14.     vector<pli> qSum(nEpisode + 1, make_pair(0, 0));
  15.     for(int i = 1; i <= nEpisode; ++i){
  16.         lli cost;
  17.         scanf("%lld", &cost);
  18.         qSum[i] = make_pair(cost + qSum[i - 1].first, i);
  19.     }
  20.     sort(qSum.begin(), qSum.end());
  21.  
  22.     int currEp = -1;
  23.     vector<pli> listEp(0);
  24.     for(int i = 0; i <= nEpisode; ++i){
  25.         if(qSum[i].second > currEp){
  26.             currEp = qSum[i].second;
  27.             listEp.push_back(qSum[i]);
  28.         }
  29.     }
  30.  
  31.     for(int q = 1; q <= Q; ++q){
  32.         lli money;
  33.         scanf("%lld", &money);
  34.         vector<pli>::iterator itr = upper_bound(listEp.begin(), listEp.end(), make_pair(money, (int)1e9)) - 1;
  35.         cout << itr -> second << "\n";
  36.     }
  37.  
  38.     return 0;
  39. }
  40.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement