Pagini recente » Cod sursa (job #667431) | Cod sursa (job #16875) | Cod sursa (job #389321) | Cod sursa (job #1048937) | Cod sursa (job #2858463)
#include <fstream>
#include <climits>
using namespace std;
const int NMAX = 50000;
int v[1 + NMAX];
int sumePartiale[1 + NMAX];
int main()
{
ifstream in("secv2.in");
ofstream out("secv2.out");
int n, k;
in >> n >> k;
int sol = INT_MIN;
int sumaMinima = 0;
int stMinim = 0;
int stSol = -1;
int drSol = -1;
for (int i = 1; i <= n; i++)
{
in >> v[i];
sumePartiale[i] = sumePartiale[i - 1] + v[i];
if (i - k >= 0)
{
if (sumePartiale[i - k] < sumaMinima) ///putem avea elemente negative si sume partiale negative
{
sumaMinima = sumePartiale[i - k];
stMinim = i - k;
}
if (sumePartiale[i] - sumaMinima > sol)
{
sol = sumePartiale[i] - sumaMinima;
stSol = stMinim + 1;
drSol = i;
}
}
}
out << stSol << ' ' << drSol << ' ' << sol << '\n';
return 0;
}