#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; } |