Pagini recente » Cod sursa (job #271602) | Cod sursa (job #1820293) | Cod sursa (job #2848687) | Cod sursa (job #2848704) | Cod sursa (job #2978179)
#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 = 0; 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 = 0, dr = n - 1, 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;
}
if (rez == -1)
return rez;
else
return rez + 1;
}
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 + 1;
}
else
{
while (st <= dr)
{
int mid = (st + dr) / 2;
if (v[mid] >= x)
rez = mid, dr = mid - 1;
else
st = mid + 1;
}
return rez + 1;
}
}