Pagini recente » Cod sursa (job #668009) | Cod sursa (job #52418) | Cod sursa (job #143879) | Cod sursa (job #3040830) | Cod sursa (job #3001749)
#include <fstream>
using namespace std;
const int N = 1e5 + 1;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int main()
{
int n, v[N], q;
in >> n;
for (int i = 0; i < n; i++)
{
in >> v[i];
}
in >> q;
for (int I = 0; I < q; I++)
{
int type, x;
in >> type >> x;
if (type == 0)
{
int st = 0, dr = n - 1, rez = -1;
while (st <= dr)
{
int m = (st + dr) / 2;
if (v[m] == x)
{
rez = m;
st = m + 1;
}
else
dr = m - 1;
}
out << rez + 1 << "\n";
}
else if (type == 1)
{
int st = 0, dr = n - 1, rez;
while (st <= dr)
{
int m = (st + dr) / 2;
if (v[m] <= x )
{
rez = m;
st = m + 1;
}
else
dr = m - 1;
}
out << rez + 1 << "\n";
}
else
{
int st = 0, dr = n - 1, rez;
while (st <= dr)
{
int m = (st + dr) / 2;
if (v[m] >= x )
{
rez = m;
dr = m - 1;
}
else
st = m + 1;
}
out << rez + 1 << "\n";
}
}
return 0;
}