Pagini recente » Cod sursa (job #2865290) | Cod sursa (job #925164) | Cod sursa (job #2759828) | Cod sursa (job #648698) | Cod sursa (job #2626800)
#include <bits/stdc++.h>
using namespace std;
fstream fin("cautbin.in");
ofstream fout("cautbin.out");
int main()
{
int n, m;
fin >> n;
vector<int> v(n + 10);
for (int i = 1; i <= n; ++i)
fin >> v[i];
fin >> m;
int x, y;
for (int i = 1; i <= m; ++i)
{
fin >> x >> y;
int s = 1, d = n, mid, rez;
if (x == 2)
{
while (s <= d)
{
mid = s + (d - s) / 2;
if (v[mid] < y)
s = mid + 1;
else
{
rez = mid;
d = mid - 1;
}
}
fout << rez;
}
else
{
while (s <= d)
{
mid = s + (d - s) / 2;
if (v[mid] <= y)
{
rez = mid;
s = mid + 1;
}
else
d = mid - 1;
}
if (x == 0)
{
if (v[rez] != y)
fout << -1;
else fout << rez;
}
else fout << rez;
}
fout << "\n";
}
}