Pagini recente » Cod sursa (job #3356470) | Cod sursa (job #3329571) | Cod sursa (job #220070) | Cod sursa (job #2808131) | Cod sursa (job #3303690)
#include <bits/stdc++.h>
using namespace std;
const int max_n = 6e6;
int s[max_n+1];
int main()
{
#ifndef LOCAL
freopen("secv2.in", "r", stdin);
freopen("secv2.out", "w", stdout);
#endif
int n, x, k;
int min = 0;
cin >> n>>k;
for(int i = 1; i<= n; i++)
{
cin >> x;
s[i] = s[i-1]+x;
}
int smax = s[n];
int st = 1, dr = n;
for(int i = k; i<= n; i++)
{
if(s[i-k] < s[min])min = i-k;
if(s[i]- s[min] > smax)
{
smax = s[i] - s[min];
st = min+1;
dr = i;
}
}
cout << st <<" "<< dr<<" "<<smax;
return 0;
}
/*Aplicăm aceeași idee ca pentru problema anterioară, dar parcurgem secvențele de lungime k, în loc să aplicăm minim*/