Pagini recente » Cod sursa (job #1584880) | Cod sursa (job #223039) | Cod sursa (job #291824) | Cod sursa (job #1763728) | Cod sursa (job #2098281)
#include <fstream>
#define limit 100005
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int n, m, logN, v[limit];
int main()
{
int i, x, y, j, aux;
in >> n;
for (i = 1; i <= n; i++) in >> v[i];
for (logN = 1; logN <= n; logN <<= 1);
in >> m;
for (j = 1; j <= m; j++) {
in >> x >> y;
if (x < 2) {
for (i = 0, aux = logN; aux; aux >>= 1)
if (i + aux <= n && v[i + aux] <= y) i += aux;
if (!x && v[i] != y) out << "-1" << '\n';
else out << i << '\n';
continue;
}
for (i = n, aux = logN; aux; aux >>= 1)
if (i - aux >= 1 && v[i - aux] >= y) i -= aux;
out << i << '\n';
}
in.close();
out.close();
return 0;
}