#include <bits/stdc++.h>
using namespace std;
const int MAXN = 500000;
int n, m;
long long prev_d, d, b;
long long t[MAXN + 5], a[MAXN + 5];
int main() {
scanf("%d %d", &n, &m);
for(int i = 0; i < n; ++i) {
scanf("%lld", &a[i]);
}
for(int i = 0; i < m; ++i) {
scanf("%lld %lld", &d, &b);
long long diff = d - prev_d;
prev_d = d;
long long res = 0;
for(int j = 0; j < n; ++j) {
long long act = t[j] + diff * a[j];
res += max(0LL, act - b);
t[j] = min(b, act);
}
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 27 28 29 | #include <bits/stdc++.h> using namespace std; const int MAXN = 500000; int n, m; long long prev_d, d, b; long long t[MAXN + 5], a[MAXN + 5]; int main() { scanf("%d %d", &n, &m); for(int i = 0; i < n; ++i) { scanf("%lld", &a[i]); } for(int i = 0; i < m; ++i) { scanf("%lld %lld", &d, &b); long long diff = d - prev_d; prev_d = d; long long res = 0; for(int j = 0; j < n; ++j) { long long act = t[j] + diff * a[j]; res += max(0LL, act - b); t[j] = min(b, act); } printf("%lld\n", res); } return 0; } |
English