Cod sursa(job #1370430)

Utilizator Eugen01Vasilescu Eugen Eugen01 Data 3 martie 2015 14:33:56
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<fstream>

#define Nmax 50005

using namespace std;

ifstream in("secv2.in");
ofstream out("secv2.out");

int V[Nmax], S[Nmax];

int main()
{
    int n, k;

    in >> n >> k;

    for (int i = 1; i <= n; i++)
    {
        in >> V[i];
        S[i] = S[i - 1] + V[i];
    }

    int startIndex = 1, maxSum = -0x3f3f3f3f, startSol, finalSol;

    for (int finalIndex = k; finalIndex <= n; finalIndex++)
    {
        if (S[finalIndex - k] - S[startIndex - 1] < 0)
            startIndex = finalIndex - k + 1;

        int currentSum = S[finalIndex] - S[startIndex - 1];

        if (currentSum > maxSum)
        {
            maxSum = currentSum;
            startSol = startIndex;
            finalSol = finalIndex;
        }
    }

    out <<  startSol << " " << finalSol << " " << maxSum << "\n";
}