Pagini recente » Cod sursa (job #2374036) | Cod sursa (job #437504) | Cod sursa (job #2364061) | Cod sursa (job #2879347) | Cod sursa (job #2427847)
#include <bits/stdc++.h>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int caut(int n,int x,int v[])
{
int msk,poz=0;
for(msk=1<<20;msk>0;msk=msk/2)
if(poz+msk<=n&&v[poz+msk]<=x)
poz=poz+msk;
return poz;
}
int v[100001];
int main()
{
int n,i,cf,m,x,k=0,nr,p;
in>>n;
for(i=1;i<=n;i++)
in>>v[i];
in>>nr;
for(i=1;i<=nr;i++)
{
in>>cf;
if(cf==0)
{
in>>x;
p=caut(n,x,v);
if(v[p]!=x)
out<<-1<<'\n';
else
out<<p<<'\n';
}
if(cf==1)
{
in>>x;
p=caut(n,x,v);
out<<p<<'\n';
}
if(cf==2)
{
in>>x;
p=caut(n,x-1,v);
out<<p+1<<'\n';
}
}
return 0;
}