Cod sursa(job #1534212)

Utilizator tudorgalatanRoman Tudor tudorgalatan Data 23 noiembrie 2015 15:32:59
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <climits>

#define NM 50001

using namespace std;

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

int a[NM];
unsigned n, k;

int sum[NM], aux[NM];
int maxim = INT_MIN;
int L_Lim, R_Lim;
unsigned i;

void scan ();
void solve ();
void print ();

int main()
{
    scan ();
    solve ();
    print ();
    return 0;
}

void scan ()
{
    InF >> n >> k;
    for (i=1; i<=n; i++)
        InF >> a[i];
}

void solve ()
{
    for (i=1; i<=n; i++)
        sum[i] = sum[i-1] + a[i];
    for (i=1; i<=n; i++)
        if (sum[i] < sum[aux[i-1]])
            aux[i] = i;
        else
            aux[i] = aux[i-1];
    for (i=k; i<=n; i++)
        if (sum[i]-sum[aux[i-k]] > maxim)
        {
            maxim = sum[i] - sum[aux[i-k]];
            R_Lim = i;
            L_Lim = aux[i-k] + 1;
        }
}

void print ()
{
    OutF << L_Lim << " " << R_Lim << " " << maxim;
}