Pagini recente » Diferente pentru problema/revolta intre reviziile 5 si 4 | Cod sursa (job #2841210) | Cod sursa (job #2082185) | Cod sursa (job #84578) | Cod sursa (job #1750733)
#include <stdio.h>
using namespace std;
int v[500005];
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
int n,k,i,p,u,a,poz,len,m=-1000000,deltapoz,pozfin;
int deq[500010];
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
scanf("%d",v+i);
p=1;u=0;
for(i=1;i<=n;i++)
{
a=v[i];
while(p<=u&&v[deq[u]]>a)
u--;
deq[++u]=i;
if(i-deq[p]>=k) p++;
if(m<v[deq[p]])
{
m=v[deq[p]];
poz=deq[p];
}
}
for(i=poz-1;v[i]>m;i--);
deltapoz=poz-i;
if(k<deltapoz) pozfin=poz;
else pozfin=poz+k-deltapoz;
printf("%d %d %d",i+1,pozfin,m);
return 0;
}