Cod sursa(job #2472272)

Utilizator MaraPMara P MaraP Data 12 octombrie 2019 10:50:08
Problema Secventa 2 Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <iostream>
#include <fstream>
using namespace std;

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

int n,k,partial_sums[50005];

struct secv
{
    int lenght, initial_position, final_position;
}maximum;
void read()
{
    fin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        int x;
        fin>>x;
        partial_sums[i]=x+partial_sums[i-1];
    }
}
void solve()
{
    int minimum=partial_sums[1],poz_minimum=1;
    for(int i=1;i<=k-1;i++)
        if(partial_sums[i]<minimum)
            minimum=partial_sums[i], poz_minimum=i;
    for(int i=k;i<=n;i++)
    {
        if(partial_sums[i]-minimum>maximum.lenght)
        {
            maximum.lenght=partial_sums[i]-minimum;
            maximum.initial_position=poz_minimum+1;
            maximum.final_position=i;
        }
        if(partial_sums[i]<minimum)
            partial_sums[i]=minimum, poz_minimum=i;
    }

    fout<<maximum.initial_position<<" "<<maximum.final_position<<" "<<maximum.lenght;
}
int main()
{
    read();
    solve();
    return 0;
}