Pagini recente » Cod sursa (job #548888) | Cod sursa (job #3320544) | Cod sursa (job #301718) | Cod sursa (job #3349599) | Cod sursa (job #3310397)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
const int nmax=500000;
int v[nmax+3];
long long sp[nmax+3],minsum[nmax+3];
const int INF=1e9;
int main()
{
int n,k;
fin>>n>>k;
for(int i=1;i<=n;i++)
{
fin>>v[i];
sp[i]=sp[i-1]+v[i];
minsum[i]=min(minsum[i-1],sp[i]);
}
long long ansewer=-INF;
int st,dr;
int j=1;
for(int i=k;i<=n;i++)
{
long long candidat=sp[i]-minsum[i-k];
if(candidat>ansewer)
{
ansewer=candidat;
st=j;
dr=i;
}
else if(candidat==ansewer && j<st)
{
st=j;
dr=i;
}
if(sp[i]<minsum[i-k])
j=i-1;
}
fout<<" "<<st<<" "<<dr<<" "<<ansewer;
return 0;
}