Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<algorithm>
- #include<cstdlib>
- #include<cstring>
- #include<cstdio>
- #include<vector>
- #include<cmath>
- #include<queue>
- #include<stack>
- #include<deque>
- #include<map>
- #include<set>
- #define MAX(a,b) (a>b?a:b)
- #define MIN(a,b) (a<b?a:b)
- #define UP upper_bound
- #define LB lower_bound
- #define LL long long
- #define Pi 3.14159265358
- #define si size()
- #define en end()
- #define be begin()
- #define fi first
- #define se second
- #define pb push_back
- #define mp make_pair
- #define ii set<int>::iterator
- using namespace std;
- long long a[300001];
- long long n, m, k, i, j, minn=1000001;
- long long sum, t, res;
- main(){
- cin>>n>>k;
- for(i=1;i<=n;i++)
- cin>>a[i], minn=min(minn,a[i]);
- for(i=1;i<=k;i++)sum+=a[i];
- if(sum>=0)
- {
- t=sum+1;
- for(i=k;i>=1;i--)
- if(a[i]>minn)
- {
- if(a[i]-minn>t)
- {
- a[i]-=t;
- sum-=t;
- res+=t;
- t=0;
- }
- else
- {
- t-=(a[i]-minn);
- sum-=a[i]-minn;
- res+=a[i]-minn;
- a[i]=minn;
- }
- if(t<=0)break;
- }
- }
- for(i=k+1;i<=n;i++)
- {
- sum+=a[i];
- sum-=a[i-k];
- if(sum>=0)
- {
- t=sum+1;
- sum-=t;
- a[i]-=t;
- res+=t;
- }
- }
- cout<<res<<endl;
- for(i=1;i<=n;i++)
- cout<<a[i]<<" ";
- //system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement