Pagini recente » Cod sursa (job #1210957) | Cod sursa (job #74617) | Cod sursa (job #1319856) | Cod sursa (job #4749) | Cod sursa (job #1294312)
#include <stdio.h>
int a[50001],val[50001],ct[50001];
int main()
{
FILE *fin,*fout;
fin=fopen("secv2.in","r");
fout=fopen("secv2.out","w");
int n,k;
fscanf(fin,"%d%d",&n,&k);
for(int i=0;i<n;i++) fscanf(fin,"%d",&a[i]);
val[0]=a[0];
ct[0]=1;
for(int i=1;i<n;i++)
{
if(val[i-1]+a[i]<0)
{
val[i]=a[i];
ct[i]=1;
}
else
{
val[i]=val[i-1]+a[i];
ct[i]=ct[i-1]+1;
}
}
int post=-1,maxim=0;
for(int i=0;i<n;i++)
{
if(ct[i]>=k)
{
if(maxim<=val[i])
{
maxim=val[i];
post=i;
}
}
}
int s=0;
if(post!=-1) fprintf(fout,"%d %d %d",post+2-ct[post],post+1,maxim);
else
{
int prim,secund;
maxim=-1250000;
for(int i=0;i<=n-k;i++)
{
s=a[i];
for(int j=i+1;j<i+k;j++) s+=a[j];
if(maxim<s)
{
maxim=s;
prim=i+1;
secund=i+k;
}
for(int j=i+k;j<n;j++)
{
s+=a[j];
if(maxim<s)
{
maxim=s;
prim=i+1;
secund=j+1;
}
}
}
fprintf(fout,"%d %d %d",prim,secund,maxim);
}
fclose(fin);
fclose(fout);
return 0;
}