Pagini recente » Cod sursa (job #2119276) | Cod sursa (job #1445704) | Cod sursa (job #43904) | Cod sursa (job #2554411) | Cod sursa (job #779270)
Cod sursa(job #779270)
#include<cstdio>
using namespace std;
const int inf=300002;
int n,k,i,c,begin,end,maxim,poz,nrc;
int s[500001],v[500001];
char buff[5000001];
int get_number()
{int nrn=0;
int ngv=1;
if(buff[nrc]=='-')
{ngv=-1; nrc++;}
while(buff[nrc]<='9' && buff[nrc]>='0')
{nrn=10*nrn+buff[nrc]-'0';
nrc++;}
nrn=nrn*ngv;
return nrn;
}
int main()
{freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%d %d\n",&n,&k);
begin=1;
maxim=-inf;
gets(buff); nrc=0;
for(i=1; i<=n; i++)
{v[i]=get_number(); nrc++;
while(v[i]<=v[s[end]] && begin<=end) end--;
end++;
s[end]=i;
if(s[end]-s[begin]>=k)
begin++;
if(i>=k && v[s[begin]]>maxim)
{maxim=v[s[begin]];
poz=i;}
}
printf("%d %d %d",poz-k+1,poz,maxim);
return 0;
}