Cod sursa(job #820332)

Utilizator Master011Dragos Martac Master011 Data 20 noiembrie 2012 18:50:50
Problema Secventa 2 Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>
#define min -100000000
#define max 50001
FILE *fin,*fout;
int v[max],sum[max];
int main()
{
    fin=fopen("secv2.in","r");
    fout=fopen("secv2.out","w");
    int n,k;
    fscanf(fin,"%d%d",&n,&k);
    int i,nrc,pozc=1,pozm=1,inc=1,u;
    int sc=0,smax=min;
    for(i=1;i<=n;i++){
        fscanf(fin,"%d",&v[i]);
        sum[i]=sum[i-1]+v[i];
    }
    for(i=1;i<=n;i++){
        if(u-pozc+1>k){
            if(sum[i]-sum[pozc]>sum[i-1]-sum[pozc]){
                sc-=sum[pozc];
                pozc++;
            }
        }
        sc+=v[i];
        u=i;
        if((sc>smax)&&(u-pozc+1>=k)){
            smax=sc;
            pozm=pozc;
            inc=u;
        }
    }
    fprintf(fout,"%d %d %d",pozm,inc,smax);
    fclose(fin);
    fclose(fout);
    return 0;
}