Cod sursa(job #2457213)

Utilizator Narcys01Ciovnicu Narcis Narcys01 Data 16 septembrie 2019 21:50:30
Problema Secventa 2 Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
#include <iostream>

using namespace std;

int v[50004];
int t[50004];
int n, k;

int main()
{
    ifstream fin("secv2.in");
    ofstream fout("secv2.out");

    int i, x;
    int s, smax, p1, p2, poz;

    fin >> n >> k;
    for (i = 1; i <= n; i++)
    {
        fin >> v[i];
        t[i] = t[i-1] + v[i];
    }
    s = smax = t[k];
    p1 = 1;
    p2 = k;
    poz = 1;
    for (i = k+1; i <= n; i++)
    {
        t[i] = t[i-1] + v[i];
        if (s < 0)
        {
            poz = i-k+1;
            s = t[i-1] - t[i-k];
            //cout << s << " *\n";
        }
        else if (s >= 0)
        {
            //
        }
        s += v[i];
        //cout << s << " +\n";
        if (s > smax)
        {
            smax = s;
            p1 = poz;
            p2 = i;
        }
    }
    while (v[p1] <= 0 && p1 <= p2-k)
    {
        p1++;
        smax = t[p2] - t[p1-1];
    }
    fout << p1 << " " << p2 << " " << smax << "\n";
    return 0;
}