Pagini recente » Cod sursa (job #2834764) | Autentificare | Cod sursa (job #2274531) | Cod sursa (job #1922940) | Cod sursa (job #2168189)
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
unsigned a[100002],n,m,x,intr;
int cautarebinara(int x)
{
int i,sol,l,r,m;
l=1;
r=n;
sol=-1;
while(l <= r )
{
m=(l+r)/2;
if( x == a [m] )
sol=m;
if ( a[m] <= x )
l=m+1;
if( a[m] > x )
r=m-1;
}
return sol;
}
int cautarebinara1(int x)
{
int i,sol,l,r,m;
l=1;
r=n;
sol=-1;
m=a[1];
while(l <= r )
{
m=(l+r)/2;
if( x >= a [m] )
sol=m;
if ( a[m] <= x )
l=m+1;
if( a[m] > x )
r=m-1;
}
return sol;
}
int cautarebinara2(int x)
{
int i,sol,l,r,m;
l=1;
r=n;
sol=-1;
while(l <= r && sol==-1 )
{
m=(l+r)/2;
if( x >= a [m] )
sol=m;
if ( a[m] <= x )
l=m+1;
if( a[m] > x )
r=m-1;
}
return sol;
}
int main()
{
int i;
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
f>>m;
for(i=1;i<=m;i++)
{
f>>intr;
f>>x;
if(intr==0)
{
g<<cautarebinara(x)<<'\n';
}
if(intr==1)
g<<cautarebinara1(x)<<'\n';
if(intr==2)
g<<cautarebinara2(x)<<'\n';
}
}