Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* [A][M][C][B][N] / [K][R][I][P][6][8] */
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- const char sp = ' ', nl = '\n';
- const int MOD = 1999999973;
- ifstream fin("br.in");
- ofstream fout("br.out");
- int main() {
- ios::sync_with_stdio(0);
- cin.tie(0), cout.tie(0);
- int n, q;
- fin >> n >> q;
- vector<ll> v(n + 2), sm(2 * n + 2);
- for (int i = 1; i <= n; ++i)
- fin >> v[i];
- for (int i = 1; i <= 2 * n; ++i)
- sm[i] = sm[i - 1] + v[(i - 1) % n + 1];
- auto range_sum = [&sm](ll st, ll dr) {
- return sm[dr] - sm[st - 1];
- };
- while (q--) {
- ll p, val;
- fin >> p >> val;
- ll ans, st, dr;
- st = p - 1, dr = p + n;
- while (dr - st > 1) {
- ll mij = st + (dr - st) / 2;
- if (range_sum(p, mij) > val)
- dr = mij;
- else
- st = mij;
- }
- ans = dr - p;
- fout << ans << nl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment