Cod sursa(job #2815611)

Utilizator rares2004Ioan Rares rares2004 Data 9 decembrie 2021 21:56:54
Problema Secventa 2 Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

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

int main()
{
    int n, k;
    fin>>n>>k;

    vector<int>v(n + 1);
    vector<int>sp(n + 1);

    for(int i = 0; i < n; i++)
    {
        fin>>v[i];
    }
    sp[0] = v[0];
    for(int i = 1; i < n; i++)
    {
        sp[i] = sp[i - 1] + v[i];
    }
    int maxim = (1 << 31), maximr = (1 << 31), dr, st = 0;
    for(int i = k - 1; i < n; i++)
    {
        if(sp[i] > maxim)
        {
            maxim = sp[i];
            dr = i;
        }
    }
    for(int i = 0; i < n - k; i++)
    {
        if(sp[i + k - 1] == maxim)
        {
            maxim = (1 << 31);
            for(int j = i + k; j < n; j++)
            {
                if(sp[j] > maxim)
                {
                    maxim = sp[j];
                    dr = j;
                }
            }
        }
        if(maxim - sp[i] > maximr)
        {
            maximr = maxim - sp[i];
            st = i + 1;
        }
    }
    fout<<st + 1<<" "<<dr<<" "<<maximr;

    return 0;
}