Cod sursa(job #226818)
#include<fstream.h>
#define N 50001
long i,j,st,dr,poz[N],v[N],sum1[N],sum2[N],max,poz1,n,k;
int main()
{ ifstream fin("secv2.in");
ofstream fout("secv2.out");
fin>>n>>k;
for(i=1;i<=n;i++)
{ fin>>v[i];
poz[i]=i;
if(i<=k)
sum1[i]=sum1[i-1]+v[i];
}
for(i=k+1;i<=n;i++)
sum1[i]=sum1[i-1]+v[i];
max=sum1[1];
for(i=2;i<=n;i++)
if(sum1[i]>max)
max=sum1[i],dr=i;
if(n!=k&&k!=1)
{ for(i=dr;i>k;i--)
sum2[i]+=sum2[i+1]+v[i];
for(i=dr-k;i>=1;i--)
sum2[i]=sum2[i+1]+v[i];
max=sum2[dr];
for(i=1;i<=n;i++)
if(sum2[i]>max)
max=sum2[i],st=i;
fout<<st<<' '<<dr<<' '<<sum2[st];
}
else
{ if(n==k)
{ max=0;
for(i=1;i<=n;i++)
max+=v[i];
fout<<1<<' '<<n<<' '<<max;
}
if(k==1)
{ max=v[1];
for(i=2;i<=n;i++)
if(max<v[i]) max=v[i],k=i;
fout<<k<<' '<<k<<' '<<max;
}
}
return 0;
}