Pagini recente » Cod sursa (job #1423944) | Cod sursa (job #1785071) | Cod sursa (job #1676545) | Cod sursa (job #1625675) | Cod sursa (job #2427848)
#include<fstream>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int v[1000000];
int main ()
{
int n,m,i,x,y,msk,pos=0;
in>>n;
for(i=1; i<=n; i++)
in>>v[i];
in>>m;
while(m!=0)
{
in>>y;
if(y==0)
{
in>>x;
pos=0;
for(msk=1<<20; msk>0; msk/=2)
{
if(pos+msk<=n && v[pos+msk]<=x)
pos+=msk;
}
if(v[pos]==x)
out<<pos<<'\n';
else
out<<-1<<'\n';
}
if(y==1)
{
in>>x;
pos=0;
for(int msk=1<<20; msk>0; msk/=2)
{
if(pos+msk<=n && v[pos+msk]<=x)
pos+=msk;
}
out<<pos<<'\n';
}
if(y==2)
{
in>>x;
pos=0;
for(msk=1<<20; msk>0; msk/=2)
{
if(pos+msk<=n && v[pos+msk]<x)
pos+=msk;
}
out<<pos+1<<'\n';
}
m--;
}
return 0;
}