Pagini recente » Cod sursa (job #2505461) | Cod sursa (job #411600) | Cod sursa (job #2429055) | Cod sursa (job #1051972) | Cod sursa (job #2786534)
#include <fstream>
using namespace std;
ifstream cin ( "cautbin.in" );
ofstream cout ( "cautbin.out" );
#define NMAX 100000
int v[NMAX];
int main() {
int n, i, p2, q, op, x, pas, st;
cin >> n;
for ( i = 0; i < n; i++ ) {
cin >> v[i];
}
cin >> q;
p2 = 1;
while ( p2 <= n ) {
p2 = p2 << 1;
}
p2 = p2 >> 1;
for ( i = 1; i <= q; i++ ) {
cin >> op >> x;
pas = p2;
st = 0;
if ( op == 0 ) {
for (; pas; pas >>= 1) {
if (v[st | pas] <= x) {
st |= pas;
}
}
if ( v[st] == x )
cout << st << "\n";
else
cout << "-1\n";
}
else if ( op == 1 ) {
for (; pas; pas >>= 1) {
if (v[st | pas] <= x) {
st |= pas;
}
}
cout << st << "\n";
}
else {
for (; pas; pas >>= 1) {
if (v[st | pas] > x) {
st |= pas;
}
}
cout << st << "\n";
}
}
return 0;
}