#include <cstdio>
long long wys[500000] = {0}, last[500000] = {0};
long long d, b, ld = 0;
int n, m;
// 4 4 1 2 4 3 1 1 2 2 3 0 4 4
int main(int argc, const char * argv[]){
scanf("%d %d", &n, &m);
for (int i = 0; i < n; ++i) scanf("%lld", &(wys[i]));
for (int j = 0; j < m; ++j) {
scanf("%lld %lld", &d, &b);
long long res = 0;
for (int i = 0; i < n; ++i) {
long long w = last[i] + (d - ld) * wys[i];
res += w > b ? w - b : 0;
last[i] = w > b ? b : w;
}
ld = d;
printf("%lld\n", res);
}
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 | #include <cstdio> long long wys[500000] = {0}, last[500000] = {0}; long long d, b, ld = 0; int n, m; // 4 4 1 2 4 3 1 1 2 2 3 0 4 4 int main(int argc, const char * argv[]){ scanf("%d %d", &n, &m); for (int i = 0; i < n; ++i) scanf("%lld", &(wys[i])); for (int j = 0; j < m; ++j) { scanf("%lld %lld", &d, &b); long long res = 0; for (int i = 0; i < n; ++i) { long long w = last[i] + (d - ld) * wys[i]; res += w > b ? w - b : 0; last[i] = w > b ? b : w; } ld = d; printf("%lld\n", res); } return 0; } |
English