Cod sursa(job #2475075)

Utilizator Vaida_Radu_AndreiVaida Radu Andrei Vaida_Radu_Andrei Data 16 octombrie 2019 10:43:33
Problema Secventa 2 Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <cstdio>

using namespace std;

int partialSums[51024],minLength,partialSumsLength;

int takeMin(int x,int y) {
    return (x-y)*(x<y)+y;
}

void read() {
    int i,newElem;
    scanf("%d%d",&partialSumsLength,&minLength);
    for(i=1;i<=partialSumsLength;++i) {
        scanf("%d",&newElem);
        partialSums[i]=partialSums[i-1]+newElem;
    }
}

void solve() {
    int i,minSum,sol,minSumStart,solStart,solStop;
    for(i=minLength,minSum=partialSums[0],sol=partialSums[minLength]-minSum;i<=partialSumsLength;++i) {
        if(minSum>partialSums[i-minLength]) {
            minSum=partialSums[i-minLength];
            minSumStart=i-minLength;
        }
        if(partialSums[i]-minSum>sol) {
            sol=partialSums[i]-minSum;
            solStart=minSumStart;
            solStop=i;
        }
    }
    printf("%d %d %d",solStart+1,solStop,sol);
}

int main()
{
    freopen("secv2.in","r",stdin);
    freopen("secv2.out","w",stdout);
    read();
    solve();
    return 0;
}