Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define NN 100005
- using namespace std;
- ifstream fin("castig.in");
- ofstream fout("castig.out");
- int n, k, a[NN];
- unsigned long long s, valmin, minmaxim;
- unsigned long long int slungk[NN], slungkmaxst[NN], slungkmaxdr[NN];
- int main()
- {
- int i;
- fin>>n>>k;
- for(i=1; i<=n; i++)
- fin>>a[i];
- for(i=1; i<=k; i++)
- s+=a[i];
- slungk[1]=slungkmaxst[1]=s;
- for(i=2; i<=n-k+1; i++)
- {
- slungk[i]=slungk[i-1]-a[i-1]+a[i+k-1];
- slungkmaxst[i]=slungkmaxst[i-1];
- if(slungk[i]>slungkmaxst[i])
- slungkmaxst[i]=slungk[i];
- }
- slungkmaxdr[n-k+1]=slungk[n-k+1];
- for(i=n-k; i>=1; i--)
- {
- slungkmaxdr[i]=slungkmaxdr[i+1];
- if(slungk[i]>slungkmaxdr[i])
- slungkmaxdr[i]=slungk[i];
- }
- valmin=slungkmaxdr[k+1];
- for(i=2; i<=k; i++)
- if(valmin>slungkmaxdr[i+k])
- valmin=slungkmaxdr[i+k];
- for (i=k+1; i<=n-k+1; i++)
- {
- minmaxim=slungkmaxst[i-k];
- if(minmaxim<slungkmaxdr[i+k])
- minmaxim=slungkmaxdr[i+k];
- if(minmaxim<valmin)
- valmin=minmaxim;
- }
- fout<<valmin<<'\n';
- return 0;
- }
Add Comment
Please, Sign In to add comment