Cod sursa(job #1456869)

Utilizator NistorSergiuNistor Sergiu NistorSergiu Data 2 iulie 2015 12:14:32
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>

#define NMAX 50001

using namespace std;

int numbers[NMAX];
int sums[NMAX];

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