#include <iostream> using namespace std; int a[200001][2]; int max(int a,int b){ if(a<b) return b; else return a; } int main() { int n,m,i,k,wyn,j,mx; cin>>n>>m; a[0][0]=0; a[0][1]=0; for(i=1;i<=n;i++){ cin>>a[i][0]; } for(i=0;i<m;i++){ cin>>k; wyn=0; for(j=1;j<=n;j++){ mx=max(a[j][0]-k,a[j-1][1]); if(mx>a[j][0]-k) wyn+=a[j-1][1]-a[j][0]+k; a[j][1]=mx+k; } cout<<wyn<<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 | #include <iostream> using namespace std; int a[200001][2]; int max(int a,int b){ if(a<b) return b; else return a; } int main() { int n,m,i,k,wyn,j,mx; cin>>n>>m; a[0][0]=0; a[0][1]=0; for(i=1;i<=n;i++){ cin>>a[i][0]; } for(i=0;i<m;i++){ cin>>k; wyn=0; for(j=1;j<=n;j++){ mx=max(a[j][0]-k,a[j-1][1]); if(mx>a[j][0]-k) wyn+=a[j-1][1]-a[j][0]+k; a[j][1]=mx+k; } cout<<wyn<<endl; } return 0; } |