Cod sursa(job #1026646)

Utilizator hevelebalazshevele balazs hevelebalazs Data 11 noiembrie 2013 20:33:33
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <stdio.h>
#define fr(i,a,b) for(int i=a;i<b;++i)
#define N 50000
int a[N],b[N],m[N];
int main(){
    freopen("secv2.in","r",stdin);
    freopen("secv2.out","w",stdout);
    int n,k;
    scanf("%i%i",&n,&k);
    fr(i,0,n)scanf("%i",a+i);
    b[0]=0,m[0]=a[0];
    fr(i,0,n){
        if(m[i-1]>0)m[i]=m[i-1]+a[i],b[i]=b[i-1];
        else m[i]=a[i],b[i]=i;
        }
    int s=0,max;
    int l,r;
    bool any=false;
    --k;
    fr(i,0,k)s+=a[i];
    fr(i,k,n){
        s+=a[i]-a[i-k];
        if(!any||max<m[i-k]+s) any=true,max=m[i-k]+s,l=b[i-k],r=i;
        }
    printf("%i %i %i",l+1,r+1,max);
    return 0;
    }