Cod sursa(job #252190)

Utilizator me_andyAvramescu Andrei me_andy Data 3 februarie 2009 23:26:38
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<fstream.h>

ifstream f("cautbin.in");
ofstream g("cautbin.out");
	 int s,a[100005],i,n,m,x1,x2;

int cautbin(int st,int dr,int x)
{
 int aux=(st+dr)/2;
 if(dr-st<2) return st;
 if(x<=a[aux]) dr=aux;
 else if(x>=aux) st=aux;
 cautbin(st,dr,x);

}

int main()
{
 f>>n;
 for(i=1;i<=n;i++)
  f>>a[i];
 f>>m;
 for(i=1;i<=m;i++)
 {
   f>>x1>>x2;
   if(x1==0)
    {
     s=cautbin(1,n,x2);
     if(a[s]==x2)
      g<<s<<"\n";
     else if(a[s+1]==x2) g<<(s+1)<<"\n";
      else g<<-1<<"\n";
    }
   if(x1==1)
   {
    s=cautbin(1,n,x2);
    if(a[s+1]<=x2) s=s+1;
    g<<s<<"\n";
   }
   if(x1==2)
   {
    s=cautbin(1,n,x2);
    if(a[s]>=x2) s=s-1;
    g<<(s+1)<<"\n";
   }

 }
 return 0;
}