Pagini recente » Cod sursa (job #880996) | Cod sursa (job #986782) | Cod sursa (job #1108660) | Cod sursa (job #263937) | Cod sursa (job #2066105)
#include <fstream>
using namespace std;
const int L = 16;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int v[100001];
int main()
{
int pas, r, n, m, i, x, tip;
in >> n;
for(i = 1; i <= n; i++)
in >> v[i];
in >> m;
for(i = 1; i <= m; i++)
{
in >> tip;
in >> x;
if(tip == 0)
{
pas = 1 << L;
r = 0;
while(pas != 0)
{
if(r+pas <= n && v[r+pas] <= x)
{
r+=pas;
}
pas /= 2;
}
if(r == 0 || v[r] != x)
r = -1;
}
else if(tip == 1)
{
pas = 1 << L;
r = 0;
while(pas != 0)
{
if(r+pas <= n && v[r+pas] <= x)
{
r+=pas;
}
pas /= 2;
}
}
else if(tip == 2)
{
pas = 1 << L;
r = 0;
while(pas != 0)
{
if(r+pas <= n && v[r+pas] < x)
{
r+=pas;
}
pas /= 2;
}
r++;
}
out << r << "\n";
}
return 0;
}