Pagini recente » Cod sursa (job #3278216) | Cod sursa (job #724934) | Cod sursa (job #2961370) | Cod sursa (job #3281770) | Cod sursa (job #962473)
Cod sursa(job #962473)
#include<stdio.h>
#include<string.h>
#define N 500000
int v[N],coada[N];
char s[N*8+1];
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
int n,k;
scanf("%d%d ",&n,&k);
int i;
gets(s);
int cont=0,length=strlen(s);
for(i=0;i<length;i++)
{
if(s[i]=='-')
{
i++;
while(s[i]!=' '&&i<length)
v[cont]=v[cont]*10+(s[i]-'0'),i++;
v[cont]=-v[cont];
cont++;
}
else
{
while(s[i]!=' '&&i<length)
v[cont]=v[cont]*10+(s[i]-'0'),i++;
cont++;
}
}
int st=1,dr=0;
int max=-30001;
int poz1,poz2;
for(i=0; i<n; i++)
{
while(st<=dr&&v[i]<=v[coada[dr]])
dr--;
dr++;
coada[dr] = i;
if (coada[st] == i-k)
st++;
if (i+1>=k)
if(v[coada[st]]>max)
poz1=i-k+1,poz2=i,max=v[coada[st]];
}
printf("%d %d %d",poz1+1,poz2+1,max);
return 0;
}