Pagini recente » Cod sursa (job #1289848) | Cod sursa (job #3326202) | Cod sursa (job #3355267) | Cod sursa (job #2167344) | Cod sursa (job #3310864)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
const int nmax=50000;
int v[nmax+3];
int sp[nmax+3],minsum[nmax+3],ind_j[nmax+3];
const long long 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];
}
for(int i=1;i<=n;i++)
{
minsum[i]=min(minsum[i-1],sp[i]);
if(sp[i]<minsum[i-1])
ind_j[i]=i;
else
ind_j[i]=ind_j[i-1];
}
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];
j=ind_j[i-k]+1;
if(candidat>ansewer)
{
ansewer=candidat;
st=j;
dr=i;
}
else if(candidat==ansewer && j<st)
{
st=j;
dr=i;
}
}
fout<<st<<" "<<dr<<" "<<ansewer<<" ";
return 0;
}