Pagini recente » Cod sursa (job #3160719) | Cod sursa (job #3293995) | Cod sursa (job #22960) | Cod sursa (job #24962) | Cod sursa (job #662963)
Cod sursa(job #662963)
#include <cstdio>
#define MAX 50050
#define MIN -1300000000
using namespace std;
int n;
int k;
int v[MAX];
int start, sfarsit;
int maxim = MIN;
void citire()
{
freopen("secv2.in", "r", stdin);
scanf("%d %d\n", &n, &k);
for(int i = 1; i <= n; i++)
{
scanf("%d ", &v[i]);
}
fclose(stdin);
}
void afisare()
{
freopen("secv2.out", "w", stdout);
printf("%d %d %d", start, sfarsit, maxim);
fclose(stdout);
}
void rezolvare()
{
int s = 0;
int sPart = 0;
int Si = 1;
for(int i = 1; i <= k; i++)
{
sPart += v[i];
}
start = 1;
sfarsit = k;
s = sPart;
maxim = s;
for(int i = k + 1; i <= n; i++)
{
sPart = sPart - v[i - k] + v[i];
if(s + v[i] < sPart)
{
s = sPart;
Si = i - k + 1;
}
else
{
s += v[i];
}
if(s > maxim)
{
maxim = s;
start = Si;
sfarsit = i;
}
}
}
int main()
{
citire();
rezolvare();
afisare();
return 0;
}