Cod sursa(job #1809635)

Utilizator vlad6001Pintilie Vlad vlad6001 Data 19 noiembrie 2016 09:24:57
Problema Secventa 2 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
using namespace std;

ifstream cin("secv2.in");
ofstream cout("secv2.out");

int nr, k, i, v[50005], suma[50005], suma_min[50005], cat, maxim, poz2, poz_suma_min[50005], poz1;

int main()
{
    cin >> nr >> k;
    maxim = -1260000000;
    for(i=1; i <= nr; i++)
    {
        cin >> v[i];
        suma[i] = suma[i-1] + v[i];
        if(suma[i] < suma_min[i-1])
        {
            suma_min[i] = suma[i];
            poz_suma_min[i] = i;
        }
        else
        {
            suma_min[i] = suma[i-1];
            poz_suma_min[i] = poz_suma_min[i-1];
        }
        //suma_min[i] = min(suma_min[i-1], suma[i]);
    }

    for(i=k; i <= nr; i++)
    {
        cat = suma[i] - suma_min[i-k];
        if(cat > maxim)
        {
            maxim = cat;
            poz2 = i;
            poz1 = poz_suma_min[i-k]+1;
        }
    }
    cout << poz1 << ' ' << poz2 << ' ' << maxim;
}