Pagini recente » Cod sursa (job #1341383) | Monitorul de evaluare | Cod sursa (job #1255641) | Cod sursa (job #1640583) | Cod sursa (job #3132669)
#include <bits/stdc++.h>
using namespace std;
ifstream f("secv2.in");
ofstream g("secv2.out");
const int nmax = 50005;
int n, k, maxi, mini[nmax], A[nmax], sumi[nmax], ind[nmax], pozi, pozf;
int main()
{
f >> n >> k;
for(int i = 1; i <= n; i ++)
{
f >> A[i];
sumi[i] = sumi[i - 1] + A[i];
}
for(int i = 1; i <= n; i ++)
{
mini[i] = min(mini[i - 1], sumi[i]);
if(mini[i] == mini[i - 1])ind[i] = ind[i - 1];
else ind[i] = i;
}
maxi = INT_MIN;
for(int i = k; i <= n; i ++)
if(maxi < sumi[i] - mini[i - k])
{
maxi = sumi[i] - mini[i - k];
pozi = ind[i - k] + 1; pozf = i;
}
g << pozi << " " << pozf << " " << maxi;
return 0;
}