Pagini recente » Cod sursa (job #700812) | Cod sursa (job #2669573) | Cod sursa (job #1144119) | Cod sursa (job #2093208) | Cod sursa (job #217716)
Cod sursa(job #217716)
#include <fstream>
using namespace std;
ifstream fin ("secv2.in");
ofstream fout ("secv2.out");
int sir[50010],suma[50010],n,poz[50010];
int k;
void citire()
{
fin>>n>>k;
for (int i=0;i<n;i++)
fin>>sir[i];
}
int main ()
{
citire();
int S=0,p=n-1;
for (int i=n-1;i>=0;i--)
{
S+=sir[i];
if (S<=0)
{
p=i-1;
S=0;
}
poz[i]=p;
suma[i]=S;
}
int MAX=-1321432,I=0,F,S_aux=0;
for (int i=0;i<k;i++)
S_aux+=sir[i];
MAX=S_aux+suma[k];
I=0;
F=poz[k];
for (int i=k;i<n;i++)
{
S_aux-=sir[i-k];
S_aux+=sir[i];
if (S_aux+suma[i+1]>MAX)
{
MAX=S_aux+suma[i+1];
I=i-k+1;
F=poz[i+1];
}
}
fout<<I+1<<" "<<F+1<<" "<<MAX;
return 0;
}