Cod sursa(job #2457115)

Utilizator anabatAna Batrineanu anabat Data 16 septembrie 2019 18:12:42
Problema Cautare binara Scor 0
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <stdio.h>
#include <stdlib.h>

#define NMAX 100000

int v[NMAX];

int main()
{
  FILE *fin,*fout;
  fin=fopen("cautbin.in","r");
  fout=fopen("cautbin.out","w");

  int st,dr,n,x,m,p,mij=0,i;
  fscanf(fin,"%d",&n); ///nr de elemente din vector
  for(i=1;i<=n;i++){
    fscanf(fin,"%d",&v[i]); ///sirul de nr
  }
  fscanf(fin,"%d",&m); ///nr de intrebari
  for(i=0;i<m;i++){
    fscanf(fin,"%d%d",&p,&x); ///tipul de intrebare si x ul

    st=0;
    dr=n-1;

    while(st<dr){
      mij=(st+dr)/2+1;
      if(x>=v[mij]){
        st=mij;
      }
      else{
        dr=mij+1;
      }
    }
      if(x==v[st]){
        fprintf(fout,"%d",st);
      }
      else{
        fprintf(fout,"-1");
      }

  }



  fclose(fin);
  fclose(fout);
  return 0;
}