Cod sursa(job #2862030)

Utilizator ZsuzsannaZsuzsanna Gergely Zsuzsanna Data 4 martie 2022 20:10:19
Problema Secventa 2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>
using namespace std;

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

int v[50001];

int main()
{
    int n, k, minim, pozmin, pozinc, pozfin, sumamax = -1e9;
    int x;
    fin >> n >> k;
    for(int i = 1; i <= n; ++i)
    {
        fin >> x;
        v[i] = v[i - 1] + x;/// calculam sirul de sume partiale
    }
    minim = 0;
    pozmin = 0;
    for(int i = 1; i <= n; ++i)
    {
        if(v[i] - minim > sumamax && i - pozmin >= k)///secventa are cel putin lungimea k
        {
            sumamax = v[i] - minim;
            pozinc = pozmin + 1;
            pozfin = i;
        }
        if(i >= k && v[i] - v[i - k] > sumamax)///diferente pe sume partiale
        {
            sumamax = v[i] - v[i - k];
            pozinc = i - k + 1;
            pozfin = i;
        }
        if(v[i] < minim)
        {
            minim = v[i];
            pozmin = i;
        }
    }
    fout << pozinc << ' ' << pozfin << ' ' << sumamax << '\n';
    return 0;
}