Cod sursa(job #2544977)

Utilizator divianegoescuDivia Negoescu divianegoescu Data 12 februarie 2020 18:57:07
Problema Secventa 2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#define K 50002
#define INF 1000000000
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
int n,i,k,p,v[K],s[K],smin,sol,pmax,umax;
int main(){
    fin>>n>>k;
    for(i=1;i<=n;i++){
        fin>>v[i];
        s[i]=s[i-1]+v[i];
    }
    smin=INF; sol=-INF;
    for(i=k;i<=n;i++){
       //secv terminata pe poz i poate incepe de la poz j=1,2,.. cel mult i-k+1
       //suma s[i]-s[j-1] maxima => am nev de s[j-1] minim ,j=1,i-k+1
       if(s[i-k]<smin){
            smin=s[i-k];
            p=i-k;
       }
       if(s[i]-smin>sol){
            sol=s[i]-smin;
            pmax=p;
            umax=i;
       }
    }
    fout<<pmax+1<<" "<<umax<<" "<<sol<<"\n";
    return 0;
}