Pagini recente » Cod sursa (job #464575) | Cod sursa (job #537542) | Cod sursa (job #1581274) | Cod sursa (job #612024) | Cod sursa (job #56484)
Cod sursa(job #56484)
#include <cstdio>
#define MAX 50001
#define MAXBUF 400000
int S[MAX];
int c1, c2, max, min;
char buffer[MAXBUF];
int p;
void sub(int &x)
{x=0;
int k=buffer[p]=='-'?p++, k=-1 : k=1;
for( ; buffer[p]>='0' && buffer[p]<='9' ; p++)
x = x*10 + buffer[p] - '0';
x*=k;
}
int main( void )
{
int n, k;
freopen("secv2.in", "r", stdin);
freopen("secv2.out", "w", stdout);
fread (buffer, 1, MAXBUF, stdin);
sub(n); //printf("%c\n\n", buffer[9]);
p++;
sub(k);
p++;
int i, x, a;
for(i=1;i<=n;++i)
{
sub(x);
S[i]=S[i-1]+x; //printf("%d ", S[i]);
p++;
}
max=S[k]; //printf("%d\n", max);
c1=1;
c2=k;
min=0;
for(i=k+1;i<=n;++i)
{
if(S[i-k]<=S[min]) min=i-k;
//printf("\n%d %d\n", S[i], S[min]);
a=S[i]-S[min];
if( a > max) { max=a; c1=min+1; c2=i;} //printf("%d %d %d\n", c1, c2, max);}
}
//freopen("secv2.out", "w", stdout);
printf("%d %d %d\n", c1, c2, max);
return 0;
}