Cod sursa(job #997578)

Utilizator poptibiPop Tiberiu poptibi Data 14 septembrie 2013 15:55:59
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;

const int NMAX = 50005, INF = (1 << 30);

int N, K, V[NMAX], S[NMAX], Ans = -INF, L, R;

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

    scanf("%i %i", &N, &K);
    for(int i = 1; i <= N; ++ i)
    {
        scanf("%i", &V[i]);
        S[i] = S[i - 1] + V[i];
    }

    int Min = INF, PosMin = INF;
    for(int i = K; i <= N; ++ i)
    {
        if(S[i - K] < Min)
        {
            Min = S[i - K];
            PosMin = i - K;
        }
        if(S[i] - Min > Ans)
        {
            Ans = S[i] - Min;
            L = PosMin + 1;
            R = i;
        }
    }

    printf("%i %i %i\n", L, R, Ans);

    return 0;
}