Pagini recente » Cod sursa (job #2738979) | Cod sursa (job #2036010) | Cod sursa (job #2263451) | Cod sursa (job #2576983) | Cod sursa (job #603674)
Cod sursa(job #603674)
#include <stdio.h>
struct list
{
int info, poz;
list *urm, *prec;
} *p, *u;
int n ,k;
int main()
{
short x, max = -31000;
int i, umax = 0;
list *nod, *aux;
freopen("secventa.in", "r", stdin);
freopen("secventa.out", "w", stdout);
scanf("%d %d", &n, &k);
for(i=1;i<=n;++i)
{
scanf("%hd", &x);
while(u && u->info > x)
{
if(u == p)
{
p = NULL;
}
aux = u->prec;
delete u;
u = aux;
}
nod = new list;
nod->info = x;
nod->poz = i;
nod->prec = u;
nod->urm = NULL;
if(!p)
{
p = nod;
}
if(u)
{
u->urm = nod;
}
u = nod;
if(nod->poz - p->poz >= k)
{
aux = p->urm;
delete p;
p = aux;
p->prec = NULL;
if(i>=k && max < p->info)
{
max = p->info;
umax = u->poz - k + 1;
}
}
}
printf("%d %d %d", umax, umax + k -1, max);
return 0;
}