Pagini recente » Cod sursa (job #3031996) | Cod sursa (job #1652310) | Lista lu' Francu | Cod sursa (job #2627149) | Cod sursa (job #2908568)
#include <fstream>
#define ll long long
using namespace std;
int v[100003];
const int LGMAX = 65536; //LG, ca la televizoare
int main()
{
ifstream cin("cautbin.in");
ofstream cout("cautbin.out");
int n, i;
cin >> n;
for (i = 1; i <= n; i++)
cin >> v[i];
int q;
cin >> q;
while (q--)
{
int op, x;
cin >> op >> x;
if (op == 0)
{
int ans = 0, pas = LGMAX;
while (pas)
{
if (ans + pas <= n and v[ans + pas] <= x)
ans += pas;
pas >>= 1;
}
if (v[ans] == x)
cout << ans;
else
cout << "-1";
cout << "\n";
}
else if (op == 1)
{
int ans = 0, pas = LGMAX;
while (pas)
{
if (ans + pas <= n and v[ans + pas] <= x)
ans += pas;
pas >>= 1;
}
cout << ans << "\n";
}
else if (op == 2)
{
int ans = 0, pas = LGMAX;
while (pas)
{
if (ans + pas <= n and v[ans + pas] < x)
ans += pas;
pas >>= 1;
}
ans++;
cout << ans << "\n";
}
}
}