Pagini recente » Cod sursa (job #2161491) | Cod sursa (job #1207263) | Statistici Ceausoglu Eduard (eduard05) | Cod sursa (job #1165974) | Cod sursa (job #1618804)
#include <stdio.h>
#include <stdlib.h>
#define MAX 50001
char *buffer;
int SUM[MAX];
void read (int &a)
{
a ^= a;
bool semn = 0;
while ( *buffer < '0' || *buffer > '9')
if ( *(buffer++) == '-')
semn = 1;
while ( *buffer >= '0' && *buffer <= '9')
a = a * 10 + *(buffer++) - '0';
if(semn)
a *= -1;
}
int main(void)
{
/// CITIRE BUFFER///
freopen("secv2.in","r",stdin);
//freopen("secv2.out","w",stdout);
fseek(stdin,0,SEEK_END);
int dimensiune = ftell(stdin);
buffer = (char *) malloc(dimensiune);
rewind(stdin);
fread(buffer,dimensiune,1,stdin);
/////////////////////////////////
int n,distanta,inc,sf,inc_i,minim=0,maxim=-250001;
read(n);
read(distanta);
for ( int i = 1; i <= n; ++i)
read(SUM[i]);
for (int i = 1; i <= n; ++i)
SUM[i] += SUM[i-1];
for (int i = distanta; i <= n; ++i)
{
if(SUM[i] - minim > maxim)
{
maxim = SUM[i] - minim;
sf = i;
inc = inc_i +1;
}
if(SUM[i-distanta] < minim)
{
minim = SUM[i-distanta];
inc_i = i-distanta;
}
}
printf("%d %d %d\n",inc,sf,maxim);
return 0;
}