#include <iostream> using namespace std; int wspol[500000]; long long akt_wzr[500000]; long long wieksza(long long a) { if(a>0) { return a; } else { return 0; } } long long mniejsza(long long a, long long b) { if(a>b) { return b; } else { return a; } } int main() { int n, m; cin>>n>>m; for(int i = 0 ; i < n ; i++) { cin>>wspol[i]; } int d1, d2; long long b; cin>>d1; for(int j=0 ; j<n ; j++) { akt_wzr[j]=wspol[j]*d1; } cin>>b; long long suma=0; for(int j=0 ; j<n ; j++) { suma+=wieksza(akt_wzr[j]-b); akt_wzr[j]=mniejsza(akt_wzr[j], b); } cout<<suma<<endl; for(int i=1 ; i<m-1 ; i++) { cin>>d2; for(int j=0 ; j<n ; j++) { akt_wzr[j]+=wspol[j]*(d2-d1); } d1=d2; cin>>b; suma=0; for(int j=0 ; j<n ; j++) { suma+=wieksza(akt_wzr[j]-b); akt_wzr[j]=mniejsza(akt_wzr[j], b); } cout<<suma<<endl; } cin>>d2; for(int j=0 ; j<n ; j++) { akt_wzr[j]+=wspol[j]*(d2-d1); } cin>>b; suma=0; for(int i=0 ; i<n ; i++) { suma+=wieksza(akt_wzr[i]-b); } cout<<suma<<endl; 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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | #include <iostream> using namespace std; int wspol[500000]; long long akt_wzr[500000]; long long wieksza(long long a) { if(a>0) { return a; } else { return 0; } } long long mniejsza(long long a, long long b) { if(a>b) { return b; } else { return a; } } int main() { int n, m; cin>>n>>m; for(int i = 0 ; i < n ; i++) { cin>>wspol[i]; } int d1, d2; long long b; cin>>d1; for(int j=0 ; j<n ; j++) { akt_wzr[j]=wspol[j]*d1; } cin>>b; long long suma=0; for(int j=0 ; j<n ; j++) { suma+=wieksza(akt_wzr[j]-b); akt_wzr[j]=mniejsza(akt_wzr[j], b); } cout<<suma<<endl; for(int i=1 ; i<m-1 ; i++) { cin>>d2; for(int j=0 ; j<n ; j++) { akt_wzr[j]+=wspol[j]*(d2-d1); } d1=d2; cin>>b; suma=0; for(int j=0 ; j<n ; j++) { suma+=wieksza(akt_wzr[j]-b); akt_wzr[j]=mniejsza(akt_wzr[j], b); } cout<<suma<<endl; } cin>>d2; for(int j=0 ; j<n ; j++) { akt_wzr[j]+=wspol[j]*(d2-d1); } cin>>b; suma=0; for(int i=0 ; i<n ; i++) { suma+=wieksza(akt_wzr[i]-b); } cout<<suma<<endl; return 0; } |