Pagini recente » Cod sursa (job #2794067) | Cod sursa (job #1808428) | Cod sursa (job #2196697) | Cod sursa (job #3337934) | Cod sursa (job #3316824)
#include <bits/stdc++.h>
#define cin fin
#define cout fout
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
int sum[6000001], maxs[6000001], v[6000001];
int main()
{
int n, x, maxi = INT_MIN, k;
cin >> n >> k;
for(int i = 1; i <= n; i ++){
cin >> v[i];
sum[i] = sum[i - 1] + v[i];
}
maxs[k] = sum[k];
int poz1 = 1, poz2 = k, fst = 1, sec = k;
maxi = sum[k];
for(int i = k + 1; i <= n; i ++){
int sum1 = sum[i] - sum[i - k];
int sum2 = maxs[i - 1] + v[i];
if(sum1 > sum2){
maxs[i] = sum1;
poz1 = i - k + 1;
poz2 = i;
}
else if(sum1 < sum2){
maxs[i] = sum2;
poz2 = i;
}
else if(sum1 == sum2){
if(i - k + 1 <= poz1){
maxs[i] = sum1;
poz1 = i - k + 1;
poz2 = i;
}
else{
maxs[i] = sum2;
poz2 = i;
}
}
if(maxi < maxs[i]){
maxi = maxs[i];
fst = poz1;
sec = poz2;
}
}
cout << fst << ' ' << sec << ' ' << maxi;
}