Pagini recente » Cod sursa (job #2070288) | Cod sursa (job #2283052) | Cod sursa (job #2188392) | Cod sursa (job #1456724) | Cod sursa (job #2978176)
#include <bits/stdc++.h>
using namespace std;
string np = "cautbin";
ifstream f(np + ".in");
ofstream g(np + ".out");
// #define f cin
// #define g cout
int n, v[100003];
int cb(int cer, int x);
int main()
{
f >> n;
for (int i = 1; i <= n; i++)
f >> v[i];
int t;
f >> t;
while (t--)
{
int cer, x;
f >> cer >> x;
g << cb(cer, x) << '\n';
}
return 0;
}
int cb(int cer, int x)
{
int st = 1, dr = n, rez = -1;
if (cer == 0)
{
while (st <= dr)
{
int mid = (st + dr) / 2;
if (v[mid] == x)
rez = mid, st = mid + 1;
else
dr = mid - 1;
}
return rez;
}
else if (cer == 1)
{
while (st <= dr)
{
int mid = (st + dr) / 2;
if (v[mid] <= x)
rez = mid, st = mid + 1;
else
dr = mid - 1;
}
return rez;
}
else
{
while (st <= dr)
{
int mid = (st + dr) / 2;
if (v[mid] >= x)
rez = mid, dr = mid - 1;
else
st = mid + 1;
}
return rez;
}
}