Cod sursa(job #1810837)

Utilizator razvandraghiciDraghici Razvan razvandraghici Data 20 noiembrie 2016 16:54:00
Problema Secventa 2 Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>

using namespace std;

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

long long soli, solf, i, j, s, maxim=-2000000000, pozi, pozf, nr, k, n, v[50010], st, dr;
int main()
{
    fin>>n>>k;
    for(i=1;i<=k;i++)
        fin>>v[i];
    st=1;
    dr=k;
    for(i=k+1;i<=n;i++){
        s=0;
        for(j=st;j<=dr;j++){
            s+=v[j];
        }
        if(s>maxim){
            maxim=s;
            soli=st;
            solf=dr;
        }
        st++;
        dr++;
        fin>>v[i];
    }
    s=v[1];
    nr=1;
    pozi=1;
    pozf=1;
    for(i=2;i<=n;i++){
        if(s+v[i]>v[i]){
            s+=v[i];
            nr++;
            pozf++;
            if(nr>=k && s>maxim){
                maxim=s;
                soli=pozi;
                solf=pozf;
            }
        }
        else{
            pozi=i;
            pozf=i;
            nr=1;
            s=v[i];
        }
    }
    fout<<soli<<" "<<solf<<" "<<maxim;
    return 0;
}