Pagini recente » Cod sursa (job #1370248) | Cod sursa (job #2568696) | Cod sursa (job #2557908) | Cod sursa (job #547961) | Cod sursa (job #1403923)
#include <bits/stdc++.h>
using namespace std;
int n, a[100005], m, t, l, r, mij, i, x, sol;
int main()
{
freopen("cautbin.in", "r", stdin);
freopen("cautbin.out", "w", stdout);
scanf("%d", &n);
for(i = 1; i <= n; i++)
scanf("%d", &a[i]);
scanf("%d", &m);
for(; m; m--)
{
scanf("%d%d", &t, &x);
if(!t)
{
sol = 1000000;
l = 1;
r = n;
while(l <= r)
{
mij = (l + r) / 2;
if(a[mij] <= x)
{
if(a[mij] == x)
sol = mij;
l = mij + 1;
}
else
r = mij - 1;
}
if(sol == 1000000)
printf("-1\n");
else
printf("%d\n", sol);
continue;
}
if(t == 1)
{
sol = 1000000;
l = 1;
r = n;
while(l <= r)
{
mij = (l + r) / 2;
if(a[mij] <= x)
{
sol = mij;
l = mij + 1;
}
else
r = mij - 1;
}
printf("%d\n", sol);
continue;
}
sol = 1000000;
l = 1;
r = n;
while(l <= r)
{
mij = (l + r) / 2;
if(a[mij] < x)
l = mij + 1;
else
{
sol = mij;
r = mij - 1;
}
}
printf("%d\n", sol);
}
return 0;
}