Pagini recente » Cod sursa (job #2112814) | Cod sursa (job #2114403) | Cod sursa (job #601934) | Cod sursa (job #537875) | Cod sursa (job #1803749)
#include <iostream>
#include <cstdio>
#include <deque>
#include <cstring>
#define NMAX 500005
using namespace std;
int a[NMAX], n, k, maxi, stop, nr = 1;
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);
b[strlen(b)] = ' ';
for(int k = 0; k <= strlen(b); )
{
int i, p = 1;
for(i = k + (b[k] == '-'); b[i] != ' '; i++)
{
a[nr] = p * a[nr] + (b[i] - '0');
p = p * 10;
}
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;
}