Pagini recente » Cod sursa (job #775995) | Cod sursa (job #284402) | Cod sursa (job #2845959) | Cod sursa (job #1825832) | Cod sursa (job #1040174)
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
#define NMAX 100001
#define VMAX 1 << 30
int i, N, M;
int c, x;
int cnt;
int v[NMAX];
int main() {
fin >> N;
for (i = 1; i <= N; ++i)
fin >> v[i];
fin >> M;
while (M--) {
fin >> c >> x;
if (c == 2) {
for (i = N, cnt = VMAX; cnt; cnt >>= 1)
if (i - cnt >= 0 && v[i - cnt] >= x)
i -= cnt;
fout << i << '\n';
continue;
}
for (i = 0, cnt = VMAX; cnt; cnt >>= 1)
if (i + cnt <= N && v[i + cnt] <= x)
i += cnt;
if (!c && v[i] != x)
fout << -1 << '\n';
else
fout << i << '\n';
}
return 0;
}