Cod sursa(job #2133189)

Utilizator iDanyelArvat Ovidiu Daniel iDanyel Data 16 februarie 2018 17:24:18
Problema Secventa 2 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <iostream>
#include <fstream>
using namespace std;

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

int n, k, v[50001], S[50001], L[50001], U[50001];
int poz1, poz2, MAX;

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

    for(int i=1;i<=n;i++)
        fin >> v[i];

    S[1]=L[1]=U[1]=1;

    for(int i=2;i<=n;i++)
    {
        if(S[i-1]+v[i]>S[i])
        {
            S[i]=S[i-1]+v[i];

            L[i]=L[i-1]+1;
            U[i]=U[i-1];
        }
        else
        {
            S[i]=v[i];

            L[i]=1;
            U[i]=i;
        }
    }

    for(int i=1;i<=n;i++)
        if(S[i]>MAX&&i-U[i]+1>=k)
        {
            MAX=S[i];

            poz1=U[i];
            poz2=i;
        }

    fout << poz1 << " " << poz2 << " " << MAX;
    return 0;
}