Cod sursa(job #2191708)

Utilizator stanescumalinStanescu Malin Octavian stanescumalin Data 3 aprilie 2018 15:23:49
Problema Secventa 2 Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#define LMAX 2000000000

using namespace std;

int main()
{
    ifstream fin("secv2.in");
    ofstream fout("secv2.out");
    int n, k, i;
    fin>>n>>k;
    int *sel, *mins, *pmin;
    sel = new int[n+1]; mins=new int[n+1]; pmin=new int[n+1];
    int max=-LMAX, min=LMAX, posmin;
    int sum=0;
    mins[0]=0; pmin[0]=0;
    int cposmax, cposmin;
    for(i=1;i<=n;i++)
    {
        int a;
        fin>>a;
        sum+=a;
        sel[i]=sum;
        if(sum<min)
        {
            min=sum;
            posmin=i;
        }
        mins[i]=min;
        pmin[i]=posmin;
    }
    for(i=n;i>=k;i--)
    {
        if(sel[i]-mins[i-k]>max)
        {
            max=sel[i]-mins[i-k];
            cposmax=i;
            cposmin=pmin[i-k];
        }
    }
    fout<<cposmin+1<<" "<<cposmax<<" "<<max;
    return 0;
}