Cod sursa(job #188246)

Utilizator katakunaCazacu Alexandru katakuna Data 7 mai 2008 16:53:55
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<stdio.h>

struct asfs {int v,p;}d[10000];
int i,v[10005],n,k,p,u,max,a,b;

int main(){



FILE *f=fopen("secventa.in","r");
fscanf(f,"%d %d",&n,&k);

  for(i=1;i<=n;i++)
  fscanf(f,"%d",&v[i]);

fclose(f);

p=u=1;
d[1].v=v[1];
d[1].p=1;


  for(i=2;i<=n;i++){

    while(p<=u&&d[p].p<=i-k)
    p++;

    while(p<=u&&d[p].v>v[i])
    u--;

    u++;
    d[u].p=i;
    d[u].v=v[i];

    if(i>=k&&d[p].v>max){
    a=d[p].p;
    max=d[p].v;
    }

  }

  b=a+k-1;

  while(a>1 && v[a-1]>=max)
  a--;

FILE *g=fopen("secventa.out","w");
fprintf(g,"%d %d %d",a,b,max);
fclose(g);

return 0;
}