#include<bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
	ll n, m, r, x, y, lef, rig,cnt, p, i, j, ans, t, ti, lo, hi, q;
	
	cin >> n >> q;
	
	ll a[ n + 2], b[n + 2], c[n + 2];
	
	for (i = 1; i <= n; i ++) {
		cin >> a[i];
	}
	b[0] = 1;
	vector < ll > v;
	
	v.push_back(0);
	for (i = 1; i <= n; i ++) {
		if ( a[i] <= b[i - 1]) {
			b[i] = b[i -1];
		}
		else {
			v.push_back(i);
			b[i] = (a[i] + b[i - 1] - 1)/b[i- 1];
			b[i] = b[i - 1] * b[i];
		}
	}
	v.push_back(n + 1);
	while ( q --) {
		cin >> ti >> lo >> hi;
		cnt = 0;
		for (i = 0; i + 1 < v.size(); i ++) {
			p = ti/b[v[i]];
			p = p * b[v[i]];
			p = p - v[i];
			rig = p;
			lef = p - (v[i + 1] - v[i])+1 ;
		//	cout << lef << " "<< rig << endl;
			if ( lef > hi || lo > rig) continue;
			lef = max(lef, lo);
			rig = min(rig, hi);
			cnt += (rig - lef + 1);
		}
		cout << cnt << "\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... |