Pagini recente » Cod sursa (job #379813) | Cod sursa (job #1516873) | Cod sursa (job #1035109) | Cod sursa (job #449435) | Cod sursa (job #1203789)
#include <fstream>
using namespace std;
ifstream cin("secv2.in");
ofstream cout("secv2.out");
long n,i,pivot(0),aux,max,sbest(-1<<19),suma(0),sol1,sol2,k,Dq[60013];
int main ()
{
cin>>n>>k;
for (i=1;i<=n;++i) {
cin>>Dq[i];
if (i<=k && i>1) Dq[i]+=Dq[i-1];
}
suma=Dq[k];
sbest=Dq[k];
for (i=k+1;i<=n;++i){
suma+=Dq[i];
++pivot;
if (Dq[i]>suma) suma=Dq[i] , pivot=0;
if (suma>sbest){
sbest=suma;
sol2=i;
sol1=i-pivot;
}
}
while (sol2-sol1<k-1){
if (sol1>1 && sol2<n){
if (Dq[sol1-1]<Dq[sol2+1]) sbest+=Dq[--sol1];
else sbest+=Dq[++sol2];
}
else
if (sol1>1 && sol2==n) sbest+=Dq[--sol1];
else
if (sol1==1 && sol2<n) sbest+=Dq[++sol2];
}
cout<<sol1<<" "<<sol2<<" "<<sbest;
return 0;
}