Pagini recente » Cod sursa (job #2477193) | Cod sursa (job #1506813) | Cod sursa (job #2531847) | Cod sursa (job #2863455) | Cod sursa (job #2190111)
#include <iostream>
#include <cstdio>
using namespace std;
const int L=16;
int v[100001];
int x,n;
int cauta(int x,int cerinta)
{
int r=0,pas=1<<L;
while(pas!=0)
{
if(cerinta==0||cerinta==1)
{
if(r+pas<=n&&v[r+pas]<=x)
r=r+pas;
}
if(cerinta==2)
{
if(r+pas<=n&&v[r+pas]<x)
r=r+pas;
}
pas=pas/2;
}
if(cerinta==0)
{
if(v[r]<x)
r=-1;
}
if(cerinta==2)
r++;
return r;
}
int main()
{
freopen("cautbin.in","r",stdin);
//freopen("cautbin.out","w",stdout);
int n,m,i,cerinta;
cin>>n;
for(i=1; i<=n; i++)
cin>>v[i];
cin>>m;
for(i=1; i<=m; i++)
{
cin>>cerinta>>x;
cout<<cauta(x,cerinta);
cout<<endl;
}
return 0;
}