Pagini recente » Cod sursa (job #1641148) | Cod sursa (job #2705293) | Cod sursa (job #1770556) | Cod sursa (job #1092711) | Cod sursa (job #2366751)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("cautbin.in");
ofstream fout ("cautbin.out");
const int Nmax = 1e5 + 5;
int a[Nmax] , n , q;
int main()
{
int op , x , L , R , m , p;
fin >> n;
for(int i = 1 ; i <= n ; i++)
fin >> a[i];
fin >> q;
while(q--)
{
fin >> op >> x;
p = -1;
L = 1;
R = n;
if(op == 0)
{
while(L <= R)
{
m = (L + R) / 2;
if(a[m] == x)
p = m , L = m + 1;
else if(a[m] < x)
L = m + 1;
else R = m - 1;
}
fout << p << "\n";
}
else if(op == 1)
{
while(L <= R)
{
m = (L + R) / 2;
if(a[m] <= x)
p = m , L = m + 1;
else
R = m - 1;
}
fout << p << "\n";
}
else
{
while(L <= R)
{
m = (L + R) / 2;
if(a[m] >= x)
p = m , R = m - 1;
else L = m + 1;
}
fout << p << "\n";
}
}
fin.close();
fout.close();
}