1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>

using namespace std;

int main(){

long long x;
int n, q, l, r;
int * tab_a;
int * tab_b;
tab_a = new int [n];
tab_b = new int [n];

cin >> n;
cin >> q;
for(int i = 0; i < n; i++){
    cin >> tab_a[i] >> tab_b[i];
}
for(int i = 1; i <= q; i++){
    cin >> x >> l >> r;
    while(l<r){
        if(tab_a[l]+x>tab_b[i]*x){
            x=x+tab_a[l];
        }
        else x=x*tab_b[l];
        l++;
    }
    cout << x%1000000007 << '\n';
}

return 0;
}