amcbn

Br

Nov 9th, 2021
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.97 KB | None | 0 0
  1. /* [A][M][C][B][N] / [K][R][I][P][6][8] */
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4. typedef long long ll;
  5. const char sp = ' ', nl = '\n';
  6. const int MOD = 1999999973;
  7. ifstream fin("br.in");
  8. ofstream fout("br.out");
  9.  
  10. int main() {
  11.     ios::sync_with_stdio(0);
  12.     cin.tie(0), cout.tie(0);
  13.     int n, q;
  14.     fin >> n >> q;
  15.     vector<ll> v(n + 2), sm(2 * n + 2);
  16.     for (int i = 1; i <= n; ++i)
  17.         fin >> v[i];
  18.     for (int i = 1; i <= 2 * n; ++i)
  19.         sm[i] = sm[i - 1] + v[(i - 1) % n + 1];
  20.     auto range_sum = [&sm](ll st, ll dr) {
  21.         return sm[dr] - sm[st - 1];
  22.     };
  23.     while (q--) {
  24.         ll p, val;
  25.         fin >> p >> val;
  26.         ll ans, st, dr;
  27.         st = p - 1, dr = p + n;
  28.         while (dr - st > 1) {
  29.             ll mij = st + (dr - st) / 2;
  30.             if (range_sum(p, mij) > val)
  31.                 dr = mij;
  32.             else
  33.                 st = mij;
  34.         }
  35.         ans = dr - p;
  36.         fout << ans << nl;
  37.     }
  38. }
Advertisement
Add Comment
Please, Sign In to add comment