Pagini recente » Cod sursa (job #1700013) | Cod sursa (job #2939006) | Cod sursa (job #920880) | Cod sursa (job #2086991) | Cod sursa (job #2294458)
#include <fstream>
using namespace std;
ifstream in("secv2.in");
ofstream out("secv2.out");
const int K = 50001;
int ult[K], k;
int SumUlt()//suma de ultimele k-1 valori
{
int s=0;
for(int i=1; i<=k; i++) s+=ult[i];
return s;
}
void ShiftUlt(int x)//mutam ultimele k elemente pentru a adauga noul ultim element x
{
for(int i=2; i<=k; i++) ult[i-1]=ult[i];
ult[k]=x;
}
int main()
{
int n, st=1, dr, sc=0, smx, stmx, drmx;
in >> n >> k;
dr=k;
for(int i=1; i<=k; i++)
{
int x;
in >> x;
sc+=x;
if(i!=1) ult[i-1]=x;
}
stmx=st;
drmx=dr;
smx=sc;
for(int i=k+1; i<=n; i++)
{
int x;
in >> x;
if(sc+x>SumUlt()+x)
{
dr++;
sc+=x;
}
else
{
st++;
dr++;
sc=SumUlt()+x;
}
if(sc>smx)
{
stmx=st;
drmx=dr;
smx=sc;
}
ShiftUlt(x);
}
out << stmx << ' ' << drmx << ' ' << smx;
return 0;
}