Cod sursa(job #1456864)

Utilizator NistorSergiuNistor Sergiu NistorSergiu Data 2 iulie 2015 11:51:10
Problema Secventa 2 Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>

#define NMAX 50001

using namespace std;
int numbers[NMAX];
int main()
{
    int left, right, sum = 0;
    int bestL, bestR,  bestS;
    int n, k;
    ifstream f("secv2.in");
    f >> n >> k;
    for(right = 1; right <= k; right++)
    {
        f >> numbers[right];
        sum += numbers[right];
    }
    left = 1;
    bestL = left; bestR = right - 1; bestS = sum;
    for(; right <= n; right++)
    {
        f >> numbers[right];
        sum += numbers[right];
        while((right - left >= k) && (numbers[left] <= 0))
        {
            sum -= numbers[left];
            left++;
        }
        if(sum > bestS)
        {
            bestS = sum;
            bestL = left;
            bestR = right;
        }
    }
    f.close();
    ofstream g("secv2.out");
    g << bestL << " " << bestR << " " << bestS << "\n";
    g.close();
    return 0;
}