Pagini recente » Cod sursa (job #2330002) | Cod sursa (job #29990) | Cod sursa (job #347724) | Cod sursa (job #2120003) | Cod sursa (job #1717970)
#include <cstdio>
#define NMax 500005
#define DIM 10000
using namespace std;
char buff[DIM];
int poz=0;
int v[NMax],deq[NMax],i,k,n,inc,sf,mx=-9999999,start,stop;
void citeste(int &numar)
{
numar = 0;
char semn='+';
while (buff[poz] < '0' || buff[poz] > '9')
{
semn = buff[poz];
if (++poz == DIM)
fread(buff,1,DIM,stdin),poz=0;
}
while ('0'<=buff[poz] && buff[poz]<='9')
{
numar = numar*10 + buff[poz] - '0';
if (++poz == DIM)
fread(buff,1,DIM,stdin),poz=0;
}
if (semn == '-')
numar = -numar;
}
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%d%d", &n,&k);
for(i=1;i<=n;i++)
citeste(v[i]);
sf=0;
inc=1;
for(i=1;i<=n;i++)
{
if(i-deq[inc]>=k)
inc++;
while(v[i]<=v[deq[sf]] && sf>=inc)
sf--;
deq[++sf]=i;
if(i>=k)
if(v[deq[inc]] > mx)
{
stop=i;
start=i-k+1;
mx=v[deq[inc]];
}
}
printf("%d %d %d", start,stop,mx);
}