Pagini recente » Cod sursa (job #1907700) | Cod sursa (job #454818) | Cod sursa (job #2025612) | Cod sursa (job #804154) | Cod sursa (job #2375731)
#include <cstdio>
#include <deque>
#define MIN -30000
using namespace std;
deque <int>T;
int n, k;
int a[500005];
int maxi=MIN, poz;
int main()
{
freopen("secventa.in", "r", stdin);
freopen("secventa.out", "w", stdout);
scanf("%d %d", &n, &k);
for(int i=1; i<=n; i++)
{
scanf("%d", &a[i]);
while(T.front()<i-k+1 && !T.empty()){
T.pop_front();
}
while(!T.empty() && a[T.back()]>a[i])
T.pop_back();
T.push_back(i);
if(i>=k)
{
if(a[T.front()]>maxi)
{
maxi=a[T.front()];
poz=T.front();
}
}
}
int i=poz;
i = poz;
while (a[i] >= maxi)
i--;
i++;
printf("%d %d %d", i, i+k-1, maxi);
return 0;
}