Pagini recente » Cod sursa (job #113737) | Cod sursa (job #891996) | Cod sursa (job #1572673) | Cod sursa (job #3178365) | Cod sursa (job #2787954)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int a[100005];
int main()
{
int N, i, logN, lg; fin >> N;
for (i = 1; i <= N; ++i) fin >> a[i];
for (logN = 1; logN <= N; logN <<= 1);
int M; fin >> M;
for (int q, x; M; --M)
{
fin >> q >> x;
if (q < 2)
{
for (lg = logN, i = 0; lg; lg >>= 1)
if (i + lg <= N && a[i + lg] <= x) i += lg;
if (!q && a[i] != x) fout << -1 << '\n';
else fout << i << '\n';
}
else
{
for (lg = logN, i = N; lg; lg >>= 1)
if (i - lg > 0 && a[i - lg] >= x) i -= lg;
fout << i << '\n';
}
}
return 0;
}