Pagini recente » Cod sursa (job #1019837) | Cod sursa (job #38960) | Cod sursa (job #2314333) | Cod sursa (job #38349) | Cod sursa (job #1803758)
#include <iostream>
#include <cstdio>
#include <deque>
#include <cstring>
#define NMAX 500005
using namespace std;
int a[NMAX], n, k, maxi, stop, nr = 1, len, i;
char b[NMAX * 7];
deque<int> D;
int main()
{
freopen("secventa.in", "r", stdin);
freopen("secventa.out", "w", stdout);
scanf("%d %d\n", &n, &k);
gets(b);
int len = strlen(b) + 1;
b[len - 1] = ' ';
for(int k = 0; k < len; )
{
for(i = k + (b[k] == '-'); b[i] != ' '; i++)
a[nr] = a[nr] * 10 + (b[i] - '0');
if(b[k] == '-')
a[nr] *= -1;
nr++;
k = i + 1;
}
for(int i = 1; i <= n; i++)
{
while(!D.empty() && a[i] <= a[D.back()])
D.pop_back();
if(!D.empty() && i >= D.front() + k)
D.pop_front();
D.push_back(i);
if(i >= k)
if(a[D.front()] > a[maxi])
{
maxi = D.front();
stop = i;
}
}
printf("%d %d %d", stop - k + 1, stop, a[maxi]);
return 0;
}