Advertisement
Guest User

Untitled

a guest
Oct 25th, 2014
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. #include<iostream>
  2. #include<algorithm>
  3. #include<cstdlib>
  4. #include<cstring>
  5. #include<cstdio>
  6. #include<vector>
  7. #include<cmath>
  8. #include<queue>
  9. #include<stack>
  10. #include<deque>
  11. #include<map>
  12. #include<set>
  13. #define MAX(a,b) (a>b?a:b)
  14. #define MIN(a,b) (a<b?a:b)
  15. #define UP upper_bound
  16. #define LB lower_bound
  17. #define LL long long
  18. #define Pi 3.14159265358
  19. #define si size()
  20. #define en end()
  21. #define be begin()
  22. #define fi first
  23. #define se second
  24. #define pb push_back
  25. #define mp make_pair
  26. #define ii set<int>::iterator
  27. using namespace std;
  28. long long a[300001];
  29. long long n, m, k, i, j, minn=1000001;
  30. long long sum, t, res;
  31. main(){
  32. cin>>n>>k;
  33. for(i=1;i<=n;i++)
  34. cin>>a[i], minn=min(minn,a[i]);
  35. for(i=1;i<=k;i++)sum+=a[i];
  36. if(sum>=0)
  37. {
  38. t=sum+1;
  39. for(i=k;i>=1;i--)
  40. if(a[i]>minn)
  41. {
  42. if(a[i]-minn>t)
  43. {
  44. a[i]-=t;
  45. sum-=t;
  46. res+=t;
  47. t=0;
  48. }
  49. else
  50. {
  51. t-=(a[i]-minn);
  52. sum-=a[i]-minn;
  53. res+=a[i]-minn;
  54. a[i]=minn;
  55. }
  56. if(t<=0)break;
  57. }
  58. }
  59. for(i=k+1;i<=n;i++)
  60. {
  61. sum+=a[i];
  62. sum-=a[i-k];
  63. if(sum>=0)
  64. {
  65. t=sum+1;
  66. sum-=t;
  67. a[i]-=t;
  68. res+=t;
  69. }
  70. }
  71. cout<<res<<endl;
  72. for(i=1;i<=n;i++)
  73. cout<<a[i]<<" ";
  74. //system("pause");
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement