Cod sursa(job #198206)

Utilizator alex23alexandru andronache alex23 Data 9 iulie 2008 18:04:54
Problema Secventa Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.36 kb
#include <stdio.h>


int pin=0,pf=0,minim,n,i,j,k,poz,min,nr,a[500003],x,y;


int main()
 {FILE *f;

  f=fopen("secventa.in","r");
  fscanf(f,"%d %d",&n,&k);
  for (i=1;i<=n;i++)
     fscanf(f,"%d",&a[i]);
  fclose(f);


  poz=0;x=y=0;
  for (i=1;i<=n;i++)
      if (poz==0) if (n-i+1>=k) {x=i;y=i+k-1;
                                 min=a[x];nr=1;
                                 for (j=x+1;j<=y;j++)
                                    if (min==a[j]) nr++;
                                              else if (a[j]<min) {min=a[j];
                                                                  nr=1;
                                                                  }
                                 poz=1;
                                 i=y;
                                 if ((pin==0)&&(pf==0)) {pin=x;pf=y;minim=min;}
                                 if (min>minim) {pin=x;pf=y;minim=min;}
                                 }
                           else i=n+1;
             else if (a[i]<min) poz=0;
                           else if (min==a[i]) {x++;y++;}
                                          else if ((a[x]==min)&&(nr>1)) {nr--;
                                                                         x++;
                                                                         y++;
                                                                         }
                                               else
                                               if (a[x]!=min) {x++;y++;}
                                               else
                                               {x++;
                                                y++;
                                                min=a[x];nr=1;
                                                for (j=x+1;j<=y;j++)
                                                   if (min==a[j]) nr++;
                                                         else if (a[j]<min) {min=a[j];
                                                                             nr=1;
                                                                             }
                                                if (min>minim) {pin=x;pf=y;minim=min;}
                                                }

  f=fopen("secventa.out","w");
  fprintf(f,"%d %d %d",pin,pf,minim);
  fclose(f);

  return 0;
  }