Pagini recente » Cod sursa (job #320894) | Cod sursa (job #985789) | Cod sursa (job #2715747) | Cod sursa (job #1661896) | Cod sursa (job #394748)
Cod sursa(job #394748)
#include <fstream>
using namespace std;
#define NMax 100006
ifstream in ( "cautbin.in" );
ofstream out ( "cautbin.out" );
int N, v [ NMax ], M, k;
int main ()
{
int t, i, x, K;
in >> N;
for ( int i = 1; i <= N; ++i )
in >> v [ i ];
for ( k = 1; k <= N; k <<= 1 );
in >> M;
for ( ; M; --M )
{
in >> t >> x;
if ( t < 2 )
{
for ( K = k, i = 0; K; K >>= 1 )
if ( i + K <= N && v [ i + K ] <= x )
i += K;
if ( !t && v [ i ] != x )
out << "-1\n";
else
out << i << "\n";
continue;
}
for ( K = k, i = N; K; K >>= 1 )
if ( i - K > 0 && v [ i - K ] >= x )
i -= K;
out << i << "\n";
}
return 0;
}