#include <cstdio> #include <algorithm> using namespace std; long long int b[500010]; long long int d[500010]; long long int h[500010]; int main() { long long int n, m; scanf("%lld%lld", &n, &m); long long int* a = new long long int[n]; for (int i = 0; i < n; i++) scanf("%lld", &a[i]); b[0] = 0; d[0] = 0; for (int i = 0; i < m; i++) { long long int t, hh; scanf("%lld%lld", &t, &hh); d[i + 1] = t; b[i + 1] = hh; long long int dt = (i == 0) ? t : t - d[i]; long long int w = 0; for (int i = 0; i < n; i++) { h[i] += a[i] * dt; if (h[i] > hh) { w += h[i] - hh; h[i] = hh; } } printf("%lld\n", w); } }
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 36 37 38 39 40 41 | #include <cstdio> #include <algorithm> using namespace std; long long int b[500010]; long long int d[500010]; long long int h[500010]; int main() { long long int n, m; scanf("%lld%lld", &n, &m); long long int* a = new long long int[n]; for (int i = 0; i < n; i++) scanf("%lld", &a[i]); b[0] = 0; d[0] = 0; for (int i = 0; i < m; i++) { long long int t, hh; scanf("%lld%lld", &t, &hh); d[i + 1] = t; b[i + 1] = hh; long long int dt = (i == 0) ? t : t - d[i]; long long int w = 0; for (int i = 0; i < n; i++) { h[i] += a[i] * dt; if (h[i] > hh) { w += h[i] - hh; h[i] = hh; } } printf("%lld\n", w); } } |