Cod sursa(job #911328)

Utilizator cristigramaAlexandru Cristian Grama cristigrama Data 11 martie 2013 15:42:20
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include<fstream>
using namespace std;
int cb(int x,int a[100],int s,int d)
{int m=(s+d)/2;
    if(x==a[m]&&x<a[m+1])
    return m;
    else
    if(x>=a[m])
    return cb(x,a,m,d);
    else 
    if(x<=a[m])
    return cb(x,a,s,m);
    }
    int cb2(int x,int a[100],int s,int d)
{int m=(s+d)/2;
    if(x==a[m]&&x>a[m-1])
    return m;
    else
      if(x<=a[m])
    return cb2(x,a,s,m);
    else
    if(x>=a[m])
    return cb2(x,a,m,d);
     
  
    }
int main()
{int n,k,m,j,i,v[1000];
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];
 fin>>m;
 for(i=1;i<=m;i++)
 {fin>>k>>j;
 if(k==0)
 {fout<<cb(j,v,1,n)<<"\n";
         
         }
 else if(k==1)
 {fout<<cb(j,v,1,n)<<"\n";
      
      }  
else if(k==2)
{
     fout<<cb2(j,v,1,n<<"\n");
     }
}
    return 0;}