Pagini recente » Cod sursa (job #809618) | Cod sursa (job #2681661) | Cod sursa (job #644612) | Cod sursa (job #1992212) | Cod sursa (job #2038170)
#include <cstdio>
#include <deque>
#define N 50005
using namespace std;
int s[N], a[N], n, k, maxim, pmax, pmin;
deque <int> mini, maxi;
int main()
{
freopen("secv2.in", "r", stdin);
freopen("secv2.out", "w", stdout);
scanf("%d %d\n", &n, &k);
for(int i=1;i<=n;i++)
{
scanf("%d ", &a[i]);
s[i]=s[i-1]+a[i];
}
for(int i=1;i<=n;i++)
{
while(!maxi.empty() && s[maxi.back()]<s[i])
maxi.pop_back();
maxi.push_back(i);
while(!mini.empty() && s[mini.back()]>s[i])
mini.pop_back();
mini.push_back(i);
if(i>=k && maxim<s[maxi.front()]-s[mini.front()])
{
maxim=s[maxi.front()]-s[mini.front()];
pmax=maxi.front();
pmin=mini.front();
}
}
printf("%d %d %d", pmin+1, pmax, maxim);
return 0;
}