Pagini recente » Cod sursa (job #2756608) | Cod sursa (job #1977884) | Cod sursa (job #317590) | Cod sursa (job #3001985) | Cod sursa (job #36059)
Cod sursa(job #36059)
#include<stdio.h>
#include<stdlib.h>
int nr[50001];
int s1[50001],s2[50001],max,s;
int main(){
FILE*in=fopen("secv.in","r");
FILE*out=fopen("secv.out","w");
int n,k,i,p1,p2,aux;
fscanf(in,"%d %d",&n,&k);
for(i=0;i<n;i++){
fscanf(in,"%d",&nr[i]);
if(i==0)
s1[i]=nr[i];
else
s1[i]=s1[i-1]+nr[i];
}
if(n==k){
fprintf(out,"1 %d %d",n,s1[n-1]);
return 0;
}
s2[n-1]=nr[n-1];
for(i=n-2;i>=0;i--)
s2[i]=s2[i+1]+nr[i];
max=-30000;
for(i=0;i<n;i++){
if(s1[i]>max){
max=s1[i];
p2=i;
}
}
max=-30000;
for(i=n-1;i>-1;i--){
if((abs(p2-i)>=k)&&(s2[i]>max)){
max=s2[i];
p1=i;
}
}
if(p1>p2){
aux=p1;
p1=p2;
p2=aux;
}
for(i=p1;i<=p2;i++)
s=s+nr[i];
fprintf(out,"%d %d %d\n",p1+1,p2+1,s);
return 0;
}