Cod sursa(job #2769905)

Utilizator IacobTudorIacob Tudor IacobTudor Data 18 august 2021 12:43:32
Problema Secventa 2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.17 kb
/**
 ____ ____ ____ ____ ____
||O |||M |||E |||G |||A ||
||__|||__|||__|||__|||__||
|/__\|/__\|/__\|/__\|/__\|


Se spune ca sunt vise
Si ca nu pot fi atinse
Sunt primele ce le vezi cand becurile-s stinse
Dar si cand is aprinse
Cand te trezesti cu ele-n gand
Si le vizualizezi din nou rand pe rand
Se spune ca visezi daca stai si-ti imaginezi
Ca esti altfel decat ceilalti, dar nu tre sa crezi
Continua sa lupti altfel imi vei da dreptate
Vei bea pe spate cu gandul la vise spulberate
    - "Vise" - Nane -

Тяжело стать богатым, но тяжелее остаться.

**/
#include<bits/stdc++.h>
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
long long n,k,s[50005],pm,m[50005],p;
int main(){
    fin>>n>>k;
    for(long long i=1;i<=n;i++){
        fin>>s[i];
        s[i]+=s[i-1];
    }
    long long mx(s[k]);
    m[n]=n;
    p=1,pm=k;
    for(long long i=n-1;i>=1;i--){
        if(s[m[i+1]]>s[i])m[i]=m[i+1];
        else m[i]=i;
    }
    for(long long i=1;i<=n-k+1;i++){
        if(s[m[i+k-1]]-s[i-1]>mx)mx=s[m[i+k-1]]-s[i-1],p=i,pm=m[i+k-1];
    }
    fout<<p<<" "<<pm<<" "<<mx;
    return 0;
}