Pagini recente » Cod sursa (job #1171397) | Cod sursa (job #2141713) | Cod sursa (job #355420) | Cod sursa (job #2805323) | Cod sursa (job #48002)
Cod sursa(job #48002)
#include <stdio.h>
int x[1<<19],n,m,i,j, max, maxi;
int q[1<<19],a,b;
void pop()
{
a++;
}
void push(int X)
{
while (b>a && q[b]>X) b--;
q[++b]=X;
}
int top()
{
return q[a];
}
void init()
{
a=0;
b=0;
}
int main (void)
{
max=-999999;
q[0]=-999999;
FILE *f=fopen("secventa.in","r");
fscanf(f,"%d %d",&n,&m);
a=1;
for(i=1;i<=n;++i)
{
fscanf(f,"%d",&x[i]);
{
while (q[b]>x[i]) b--;
q[++b]=x[i];
}
if (i-m>0 && x[i-m]==q[a]) q[a++]=-999999;
if (q[a]>max)
{
max=q[a];
maxi=i;
}
}
fclose(f);
f=fopen("secventa.out","w");
fprintf(f,"%d %d %d\n",maxi-m+1,maxi,max);
fclose(f);
return 0;
}