Cod sursa(job #1846611)

Utilizator TibiraducanuTiberiu Raducanu Tibiraducanu Data 13 ianuarie 2017 17:26:01
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;

const int N=50005;
int v[N],d[N],s[N],last[N];

int main()
{
    freopen("secv2.in","r",stdin);
    freopen("secv2.out","w",stdout);

    int i,n,k,x,Max=-(1<<30),In,Sf,Sum;
    scanf("%d%d",&n,&k);

    for(i=1;i<=n;i++){
        scanf("%d",&x);
        s[i]=s[i-1]+x;
        if(x>=d[i-1]+x){
            d[i]=x;
            last[i]=i;
        }
        else{
            d[i]=d[i-1]+x;
            last[i]=last[i-1];
        }

        if(i<k) continue;
        Sum=s[i]-s[i-k+1]+d[i-k+1];
        if(Sum>Max){
            Max=Sum;
            In=last[i-k+1];
            Sf=i;
        }
    }

    printf("%d %d %d\n",In,Sf,Max);

    return 0;
}