Pagini recente » Cod sursa (job #2754196) | Cod sursa (job #1498652) | Cod sursa (job #426948) | Cod sursa (job #543051) | Cod sursa (job #1642655)
#include <iostream>
#include <cstdio>
#include <vector>
#include <stack>
#include <deque>
#define nmax 500004
using namespace std;
int n,k;
short val[nmax];
deque<int> d;
int main()
{
int ok;
int i,j,mini,poz;
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++) scanf("%d",&val[i]);
for(i=1;i<=k;i++)
{
while(!d.empty() && val[d.back()]>=val[i]) d.pop_back();
d.push_back(i);
}
mini=val[d.front()]; poz=k;
for(i=k+1;i<=n;i++)
{
while(!d.empty() && val[d.back()]>=val[i]) d.pop_back();
d.push_back(i);
if(i-d.front()>=k) d.pop_front();
if(val[d.front()]>mini)
{
mini=val[d.front()];poz=i;
}
}
printf("%d %d %d\n",poz-k+1,poz,mini);
fclose(stdin);
fclose(stdout);
return 0;
}