Pagini recente » Cod sursa (job #935029) | Cod sursa (job #646825) | Cod sursa (job #2206115) | Cod sursa (job #240895) | Cod sursa (job #2805860)
#include <fstream>
#define N 100002
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int v[N], val, n;
void c1(int x)
{
int st = 1, dr = n, mij;
while (st <= dr)
{
mij = (st + dr) / 2;
if (v[mij] <= x)
{
val = mij;
st = mij + 1;
}
else
dr = mij - 1;
}
}
void c2(int x)
{
int st = 1, dr = n, mij;
while (st <= dr)
{
mij = (st + dr) / 2;
if (v[mij] < x)
st = mij + 1;
else
{
val = mij;
dr = mij - 1;
}
}
}
int main()
{
f >> n;
for (int i = 1;i <= n;++i) f >> v[i];
int m, caz, x;
f >> m;
while (m--)
{
f >> caz >> x;
val = -1;
if (caz == 0)
{
c1(x);
if (v[val] == x) g << val << '\n';
else g << -1 << '\n';
}
else
if (caz == 1)
{
c1(x);
if (v[val] <= x) g << val << '\n';
else g << -1 << '\n';
}
else
{
c2(x);
if (v[val] >= x) g << val << '\n';
else g << -1 << '\n';
}
}
f.close();
g.close();
return 0;
}