Cod sursa(job #3310864)

Utilizator EddyGGRIGORAS EDUARD NICOLAS EddyG Data 17 septembrie 2025 16:10:32
Problema Secventa 2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <iostream>
#include <fstream>

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

const int nmax=50000;
int v[nmax+3];
int sp[nmax+3],minsum[nmax+3],ind_j[nmax+3];
const long long INF=1e9;
int main()
{
    int n,k;
    fin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        fin>>v[i];
        sp[i]=sp[i-1]+v[i];
    }
    for(int i=1;i<=n;i++)
    {
       minsum[i]=min(minsum[i-1],sp[i]);
       if(sp[i]<minsum[i-1])
            ind_j[i]=i;
       else
            ind_j[i]=ind_j[i-1];
    }

    long long  ansewer=-INF;
    int st,dr;
    int j=1;
    for(int i=k;i<=n;i++)
    {
        long long candidat=sp[i]-minsum[i-k];
        j=ind_j[i-k]+1;
        if(candidat>ansewer)
        {
            ansewer=candidat;
            st=j;
            dr=i;
        }
        else if(candidat==ansewer && j<st)
        {
            st=j;
            dr=i;
        }
    }
    fout<<st<<" "<<dr<<" "<<ansewer<<" ";
    return 0;
}