Cod sursa(job #313575)

Utilizator doru.nituNitu Doru Constantin doru.nitu Data 9 mai 2009 13:09:11
Problema Secventa Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.52 kb
#include<stdio.h>
int a[500001],i,j,min,n,k,min1,m,i1,mini,minj;
void minim( int a1,int b)
{ min1=30000;
  for(i1=a1;i1<=b;i1++) if(a[i1]<min1) min1=a[i1];
}
int main()
{ freopen("secventa.in","r",stdin);
  freopen("secventa.out","w",stdout);
  scanf("%d %d",&n,&k);
  min=30000;
  for(i=1;i<=n;i++) { scanf("%d",&a[i]);
                      if(i<=k&&a[i]<min) min=a[i];
                    }
  m=min;
  mini=1;
  minj=k;
  if(n>400000) k+=100000;                  
  for(i=2;i+k-1<=n;i++) { if(a[i-1]==min) { minim(i,i+k-1);
                                            min=min1;
                                            if(min>m) { m=min;
                                                        mini=i;
                                                        minj=i+k-1;                                            
                                                      }
                                          } 
                        else if(a[i+k-1]<min) { min=a[i+k-1];
                                               if(min>m) { m=min;
                                                           mini=i;
                                                           minj=i+k-1;                                            
                                                          }
                                              }
                        }
  printf("%d %d %d\n",mini,minj,m);                      
  fclose(stdin);
  fclose(stdout);
  return 0;
}