Pagini recente » Cod sursa (job #2149844) | Cod sursa (job #2151146) | Cod sursa (job #2052446)
#include <fstream>
using namespace std;
ifstream cin ("cautbin.in") ;
ofstream cout ("cautbin.out") ;
int main()
{
int n, m, x, y, val =-1, md ;
cin>>n ;
int v [ n + 1 ] ;
for( int i = 1 ; i <= n ; i ++ )
cin >> v [ i ] ;
cin >> m ;
int st = 1, dr = n ;
for ( int i = 1 ; i <= m ; i ++ )
{
val = -1 ;
st = 1;
dr = n;
cin >> y >> x ;
if( y == 0 )
{
while( st <= dr )
{
md = ( st + dr ) / 2 ;
if( x > v [ md ] )
st = md + 1 ;
else if ( x < v [ md ] )
dr = md - 1 ;
else
{
val = md ;
st = md + 1 ;
}
}
}
if(y==1)
{
while ( st <= dr )
{
md = ( st + dr ) / 2 ;
if( x >= v [ md ] )
{
val = md ;
st = md + 1 ;
}
else
dr = md - 1 ;
}
}
if( y == 2 )
{
while ( st <= dr )
{
md = ( st + dr ) / 2 ;
if( x <= v [ md ] )
{
val = md ;
dr = md - 1 ;
}
else
st = md + 1 ;
}
}
cout << val << "\n" ;
}
return 0;
}