Cod sursa(job #2456869)

Utilizator CharacterMeCharacter Me CharacterMe Data 15 septembrie 2019 18:03:00
Problema Secventa 2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>
typedef long long ll;
ll sumn[50005], ind[50005], list[50005], sk[50005];
ll n, k, i, j, mx=LLONG_MIN, indl, indr;
void read();
void solve();
void write();
int main()
{
    freopen("secv2.in", "r", stdin);
    freopen("secv2.out", "w", stdout);
    read();
    solve();
    write();
    fclose(stdin);
    fclose(stdout);
    return 0;
}
void read(){
    scanf("%lld%lld", &n, &k);
    for(i=1; i<=n; ++i) scanf("%lld", &list[i]);
}
void solve(){
    for(i=1; i<=n; ++i){
        if(sumn[i-1]<=0){
            sumn[i]=list[i];
            ind[i]=i;
        }
        else{
            sumn[i]=sumn[i-1]+list[i];
            ind[i]=ind[i-1];
        }
        sk[i]=sk[i-1]+list[i];
        if(i>=k){
            sk[i]=sk[i]-list[i-k+1];
            ll s=sk[i]+sumn[i-k+1];
            if(s>mx){
                mx=s;
                indl=ind[i-k+1];
                indr=i;
            }
        }
    }
}
void write(){
    printf("%lld %lld %lld", indl, indr, mx);
}