a53

castig

a53
Jan 30th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define NN 100005
  3. using namespace std;
  4. ifstream fin("castig.in");
  5. ofstream fout("castig.out");
  6. int n, k, a[NN];
  7. unsigned long long s, valmin, minmaxim;
  8. unsigned long long int slungk[NN], slungkmaxst[NN], slungkmaxdr[NN];
  9. int main()
  10. {
  11. int i;
  12. fin>>n>>k;
  13. for(i=1; i<=n; i++)
  14. fin>>a[i];
  15. for(i=1; i<=k; i++)
  16. s+=a[i];
  17. slungk[1]=slungkmaxst[1]=s;
  18. for(i=2; i<=n-k+1; i++)
  19. {
  20. slungk[i]=slungk[i-1]-a[i-1]+a[i+k-1];
  21. slungkmaxst[i]=slungkmaxst[i-1];
  22. if(slungk[i]>slungkmaxst[i])
  23. slungkmaxst[i]=slungk[i];
  24. }
  25. slungkmaxdr[n-k+1]=slungk[n-k+1];
  26. for(i=n-k; i>=1; i--)
  27. {
  28. slungkmaxdr[i]=slungkmaxdr[i+1];
  29. if(slungk[i]>slungkmaxdr[i])
  30. slungkmaxdr[i]=slungk[i];
  31. }
  32. valmin=slungkmaxdr[k+1];
  33. for(i=2; i<=k; i++)
  34. if(valmin>slungkmaxdr[i+k])
  35. valmin=slungkmaxdr[i+k];
  36. for (i=k+1; i<=n-k+1; i++)
  37. {
  38. minmaxim=slungkmaxst[i-k];
  39. if(minmaxim<slungkmaxdr[i+k])
  40. minmaxim=slungkmaxdr[i+k];
  41. if(minmaxim<valmin)
  42. valmin=minmaxim;
  43. }
  44. fout<<valmin<<'\n';
  45. return 0;
  46. }
Add Comment
Please, Sign In to add comment