Pagini recente » Cod sursa (job #1502936) | Cod sursa (job #2701037) | Cod sursa (job #2168185) | Cod sursa (job #2876008) | Cod sursa (job #2168199)
#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,md;
l=1;
r=n;
sol=-1;
while(l <= r )
{
md=(l+r)/2;
if( x == a [md] )
sol=md;
if ( a[md] <= x )
l=md+1;
if( a[md] > x )
r=md-1;
}
return sol;
}
int cautarebinara1(int x)
{
int i,sol,l,r,md;
l=1;
r=n;
sol=-1;
md=a[1];
while(l <= r )
{
md=(l+r)/2;
if( x >= a [md] )
sol=md;
if ( a[md] <= x )
l=m+1;
if( a[md] > x )
r=md-1;
}
return sol;
}
int cautarebinara2(int x)
{
int i,sol,l,r,md;
l=1;
r=n;
sol=-1;
md=a[1];
while( l <= r && sol == -1 )
{
md=(l+r)/2;
if( x >= a [md] )
sol=md;
if ( a[md] <= x )
l=md+1;
if( a[md] > x )
r=md-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';
}
}