Cod sursa(job #2086309)

Utilizator Mihai145Oprea Mihai Adrian Mihai145 Data 11 decembrie 2017 20:25:34
Problema Secventa 2 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
int n, k, st[50002];
long long sp[50002], mini[50002], maxi=-1250000000;
int main()
{
    int i, stk, drk;
    long long x;
    fin>>n>>k;
    fin.get();
    fin>>sp[1];
    if(sp[1]>0)
        mini[1]=0;
    else mini[1]=sp[1];
    st[1]=0;
    for(i=2; i<=n; i++)
    {
        fin>>x;
        sp[i]=sp[i-1]+x;
        if(sp[i]<mini[i-1])
            mini[i]=sp[i], st[i]=i;
        else mini[i]=mini[i-1], st[i]=st[i-1];
    }
    k=max(1,k);
    for(i=k; i<=n; i++)
    {
        x=sp[i]-mini[i-k];
        if(x>maxi)
        {
            maxi=x;
            stk=st[i-k]+1;
            drk=i;
        }
    }
    fout<<stk<<' '<<drk<<' '<<maxi<<'\n';
    return 0;
}