Cod sursa(job #2040558)

Utilizator dragomirmanuelDragomir Manuel dragomirmanuel Data 15 octombrie 2017 23:33:45
Problema Secventa 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("secv2.in");
ofstream fout("secv2.out");
const int NMax = 50005;
int N, K;
int S[NMax];

void Read()
{
    fin >> N >> K;
    for(int i=1; i<=N; ++i)
    {
        int x;
        fin >> x;
        S[i] = x + S[i-1];
    }
}

void Solve()
{
    int mini = 0, maxi = S[K], poz_min = 0, poz_max = K;

    for(int i=1; i<=N-K; ++i)
    {
        if(maxi < S[i+K] - mini)
        {
            maxi = S[i+K] - mini;
            poz_max = i+K;
        }

        if(mini > S[i])
        {
            mini = S[i];
            poz_min = i;
        }
    }

    cout << poz_min + 1 << " " << poz_max << " " << maxi;
}

int main()
{
    Read();
    Solve();
    return 0;
}