Pagini recente » Cod sursa (job #3131199) | Cod sursa (job #1089262) | Cod sursa (job #1025084) | Cod sursa (job #2125564) | Cod sursa (job #562793)
Cod sursa(job #562793)
# include <fstream>
using namespace std;
int a[ 100001 ];
int main () {
int t, x, n, tip, i, cnt;
ifstream f ( "cautbin.in" );
ofstream g ( "cautbin.out");
for ( f >> n, i = 1; i <= n; ++i ) f >> a[ i ];
for ( f >> t; t; --t ) {
f >> tip >> x;
if ( tip < 2 ) {
for ( i = 1, cnt = 1 << 17; cnt; cnt >>= 1 )
if ( i + cnt <= n )
if ( a[ i + cnt ] <= x ) i += cnt;
if ( !tip && a[ i ] != x ) g << "-1\n";
else g << i << '\n';
}
else {
for ( i = n, cnt = 1 << 17; cnt; cnt >>= 1 )
if ( i - cnt >= 1 )
if ( a[ i - cnt ] >= x ) i -= cnt;
g << i << '\n';
}
}
g.close ();
return 0;
}