Pagini recente » Cod sursa (job #1741447) | Cod sursa (job #2354456) | Cod sursa (job #3131858) | Cod sursa (job #2667708) | Cod sursa (job #603771)
Cod sursa(job #603771)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct list
{
short info;
int poz;
} S[500003];
int n ,k;
char s[3000010];
int main()
{
int x;
int i, umax = 0, pmax = 0;
long long sum = 0, max = -12500000000LL;
list *nod, *aux;
char *xs;
int prim, ultim;
freopen("secv2.in", "r", stdin);
freopen("secv2.out", "w", stdout);
scanf("%d %d", &n, &k);
gets(s);
gets(s);
xs = strtok(s, " ");
i = 1;
ultim = 0;
prim = 1;
while(xs != NULL)
{
x = atoi(xs);
if(ultim>=prim && i - S[prim].poz >= k && sum < 0)
{
sum -= S[prim].info;
prim++;
}
ultim ++;
S[ultim].info = x;
S[ultim].poz = i;
sum += S[ultim].info;
if(i>=k && max < sum)
{
max = sum;
umax = S[ultim].poz;
pmax = S[prim].poz; }
xs = strtok(NULL, " ");
i++;
}
printf("%d %d %lld", pmax, umax, max);
return 0;
}