Pagini recente » Cod sursa (job #2696061) | Cod sursa (job #2303602) | Cod sursa (job #2613674) | Cod sursa (job #697281) | Cod sursa (job #1756805)
#include <fstream>
using namespace std;
int v[100010], n;
int cbin(int x)
{
int p = 0, q = (1 << 20);
while (q > 0) {
if (p + q <= n && v[p + q] <= x)
p += q;
q /= 2;
}
return p;
}
int main()
{
ifstream in("cautbin.in");
in >> n;
for (int i = 1; i <= n; i++)
in >> v[i];
ofstream out("cautbin.out");
int op, c, m;
in >> m;
while (m--) {
in >> op >> c;
if (op == 0) {
int p = cbin(c);
out << (v[p] == c ? p : -1) << '\n';
}
else if (op == 1)
out << cbin(c) << '\n';
else
out << 1 + cbin(c - 1) << '\n';
}
return 0;
}