#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int MXN = 5e5+5;
int n, q;
ll a[MXN], b[MXN];
int get(ll t, ll x) {
int l=-1, r=n+1;
ll mid;
while(r-l>1) {
mid = (l+r)>>1;
(-mid + (t/a[mid])*b[mid] >= x ? l : r) = mid;
}
return l+1;
}
int32_t main() {
cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0);
cin >> n >> q;
a[0] = b[0] = 1;
for(int i=1; i<=n; i++) {
ll d;
cin >> d;
ll x = (d+b[i-1]-1)/b[i-1];
a[i] = a[i-1]*x;
b[i] = b[i-1]*x;
}
while(q--) {
int t, l, r;
cin >> t >> l >> r;
cout << get(t, l) - get(t, r+1) << '\n';
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |