Pagini recente » Cod sursa (job #2387349) | Cod sursa (job #557819) | Cod sursa (job #1201600) | Cod sursa (job #2830467) | Cod sursa (job #228241)
Cod sursa(job #228241)
#include <stdio.h>
long long x[50001],s[50001],min[50001],mm = -1300000000,a,b,i,j,n,k;
int main(){
FILE*f=fopen("secv2.in","r");
FILE*g=fopen("secv2.out","w");
fscanf(f,"%lld %lld %lld",&n,&k,&x[1]);
s[1] = x[1];
min[1] = 1;
for(i=2;i<=n;i++){
fscanf(f,"%lld",&x[i]);
s[i] = s[i-1] + x[i];
if(s[i]<s[min[i-1]]) min[i] = i;
else min[i] = min[i-1];
}
//mm = s[k];
if(k==n) fprintf(g,"1 %lld %lld", n, s[n]);
else{
for(i=k;i<=n;i++)
if(s[i] - s[min[i-1]] > mm && i-min[i-1]+1 >= k){
a=min[i-1]+1;
b=i;
mm=s[i] - s[min[i-1]];
} else {
j = min[i-1];
while(!(s[i] - s[j] > mm && i-min[i-1]+1 >= k) && j>0)j--;
if(s[i] - s[j] > mm && i-min[i-1]+1 >= k && j>0){
a = j;
b = i;
mm=s[i] - s[j];
}
}
fprintf(g,"%lld %lld %lld\n",a,b,mm);
}
return 0;
}