Pagini recente » Cod sursa (job #311724) | Cod sursa (job #2104538) | Cod sursa (job #679498) | Cod sursa (job #2687793) | Cod sursa (job #3302563)
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
const int VMAX = 1e5 + 1;
int v[VMAX];
int main()
{
int N, tip, x;
f >> N;
for (int i = 1; i <= N; i++)
{
f >> v[i];
}
int M;
f >> M;
for (int i = 1; i <= M; i++)
{
f >> tip >> x;
if (tip == 0)
{
int st = 1, dr = N + 1;
while (st < dr)
{
int mij = (st + dr) / 2;
if (x + 1 <= v[mij])
dr = mij;
else
st = mij + 1;
}
if (v[st - 1] == x)
{
g << st - 1 << "\n";
}
else
{
g << "-1\n";
}
}
else if (tip == 1)
{
int st = 1, dr = N + 1;
while (st < dr)
{
int mij = (st + dr) / 2;
if (x + 1 <= v[mij])
dr = mij;
else
st = mij + 1;
}
g << st - 1 << "\n";
}
else
{
int st = 1, dr = N;
while (st < dr)
{
int mij = (st + dr) / 2;
if (x <= v[mij])
dr = mij;
else
st = mij + 1;
}
g << st << "\n";
}
}
return 0;
}