Pagini recente » Cod sursa (job #1629089) | Cod sursa (job #724499) | Cod sursa (job #1963972) | Cod sursa (job #2687254) | Cod sursa (job #229906)
Cod sursa(job #229906)
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
int n, m;
vector<int> v;
int main()
{
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%d", &n);
for (int i = 0; i < n; ++i)
{
int x; scanf("%d", &x);
v.push_back(x);
}
scanf("%d", &m);
for (; m; --m)
{
int x, y;scanf("%d%d", &x, &y);
if (x == 1)
printf("%d\n", lower_bound(v.begin(), v.end(), y) - v.begin());
else if (x == 2)
printf("%d\n", upper_bound(v.begin(), v.end(), y) - v.begin() + 1);
else
{
int low = lower_bound(v.begin(), v.end(), y) - v.begin();
if (v[low] == y) printf("%d\n", low + 1);
else printf("-1\n");
}
}
return 0;
}