#include <cstdio>
int main() {
int n, q, l, r;
long long x;
scanf("%d %d", &n, &q);
long long* results = new long long[q];
int* sub = new int[n];
int* mul = new int[n];
for (int i = 0; i < n; i++) {
scanf("%d %d", &sub[i], &mul[i]);
}
for (int i = 0; i < q; i++) {
scanf("%lld %d %d", &x, &l, &r);
for (int j = l; j < r; j++) {
long long add = x + sub[j];
long long mult = x * 1LL * mul[j];
if (add > mult) {
x = add;
}
else {
x = mult;
}
x %= 1000000007;
}
results[i] = x;
}
for (int i = 0; i < q; i++) {
printf("%lld\n", results[i]);
}
delete[] results;
delete[] sub;
delete[] mul;
return 0;
}
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 33 34 35 | #include <cstdio> int main() { int n, q, l, r; long long x; scanf("%d %d", &n, &q); long long* results = new long long[q]; int* sub = new int[n]; int* mul = new int[n]; for (int i = 0; i < n; i++) { scanf("%d %d", &sub[i], &mul[i]); } for (int i = 0; i < q; i++) { scanf("%lld %d %d", &x, &l, &r); for (int j = l; j < r; j++) { long long add = x + sub[j]; long long mult = x * 1LL * mul[j]; if (add > mult) { x = add; } else { x = mult; } x %= 1000000007; } results[i] = x; } for (int i = 0; i < q; i++) { printf("%lld\n", results[i]); } delete[] results; delete[] sub; delete[] mul; return 0; } |
English