Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef unsigned long long ll;
- int main() {
- int n, k;
- cin >> n >> k;
- vector<ll> a(n);
- vector<ll> pr(n - k + 1);
- vector<ll> sf(n - k + 1);
- vector<ll> su(n - k + 1);
- for(int i = 0; i < n; ++i){
- cin >> a[i];
- }
- ll s = 0;
- for(int i = 0; i < k; ++i){
- s += a[i];
- }
- su[0] = s;
- for(int i = 1; i < n - k + 1; ++i){
- su[i] = su[i - 1] + a[i + k - 1] - a[i - 1];
- }
- pr[0] = su[0];
- sf.back() = su.back();
- for(int i = 1; i < n - k + 1; ++i){
- pr[i] = max(pr[i - 1], su[i]);
- }
- for(int i = n - k - 1; i > -1; --i){
- sf[i] = max(sf[i + 1], su[i]);
- }
- ll mini = 1e18;
- for(int i = 0; i < n - k + 1; ++i){
- if(i - k < 0){
- mini = min(sf[i + k], mini);
- }
- else if(i + k > n - 1){
- mini = min(pr[i - k], mini);
- }
- else{
- mini = min(max(pr[i - k], sf[i + k]), mini);
- }
- }
- cout << mini << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement