#include <cstdio> #include <algorithm> const int MAX = 500000; long long int a[MAX]; long long int akt[MAX]; int main(){ int n,m; scanf("%d %d", &n, &m); for(int i = 0; i < n; ++i){ scanf("%lld", &a[i]); akt[i] = 0; } long long int d_tmp = 0; long long int b_tmp = 0; long long int b_now, d_now; long long int suma, tmp; for(int i = 0; i < m; ++i){ suma = 0; scanf("%lld %lld", &d_now, &b_now); for(int j = 0; j < n; ++j){ //printf("%d iteprz: %lld\n", i, suma); akt[j] += (d_now - d_tmp)*a[j]; //printf("%d itesumow: %lld\n", i, akt[j]); if(akt[j] > b_now){ suma += akt[j] - b_now; akt[j] = b_now; } //printf("%d itepo: %lld\n", i, suma); } d_tmp = d_now; b_tmp = b_now; printf("%lld\n", suma); } }
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 | #include <cstdio> #include <algorithm> const int MAX = 500000; long long int a[MAX]; long long int akt[MAX]; int main(){ int n,m; scanf("%d %d", &n, &m); for(int i = 0; i < n; ++i){ scanf("%lld", &a[i]); akt[i] = 0; } long long int d_tmp = 0; long long int b_tmp = 0; long long int b_now, d_now; long long int suma, tmp; for(int i = 0; i < m; ++i){ suma = 0; scanf("%lld %lld", &d_now, &b_now); for(int j = 0; j < n; ++j){ //printf("%d iteprz: %lld\n", i, suma); akt[j] += (d_now - d_tmp)*a[j]; //printf("%d itesumow: %lld\n", i, akt[j]); if(akt[j] > b_now){ suma += akt[j] - b_now; akt[j] = b_now; } //printf("%d itepo: %lld\n", i, suma); } d_tmp = d_now; b_tmp = b_now; printf("%lld\n", suma); } } |