Pagini recente » Cod sursa (job #1649786) | Cod sursa (job #362095) | Cod sursa (job #2418972) | Cod sursa (job #1464033) | Cod sursa (job #2985800)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n, x, m;
int a[100005];
int main()
{
fin >> n;
for (int i = 1 ; i <= n; i++)
{
fin >> a[i];
}
fin >> m;
for (int i = 0; i < m; i++)
{
int x, y;
fin >> x >> y;
if (x == 0)
{
int up = upper_bound(a + 1, a + n + 1, y) - a - 1;
if (up <= n && up >= 1 && a[up] == y)
{
fout << up << '\n';
}
else
{
fout << -1 << '\n';
}
}
else if (x == 1)
{
int up = lower_bound(a + 1, a + n + 1, y + 1) - a - 1;
fout << up << '\n';
}
else
{
fout << upper_bound(a + 1, a + n + 1, y - 1) - a << '\n';
}
}
return 0;
}