Pagini recente » Cod sursa (job #2428607) | Cod sursa (job #867157) | Cod sursa (job #960343) | Cod sursa (job #2761878) | Cod sursa (job #2334582)
#include <bits/stdc++.h>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int a[1000001], n;
int cbin(int x)
{
int pos=0;
for(int msk=1<<20; msk>0; msk/=2)
if(pos+msk<=n && a[pos+msk]<=x)
pos+=msk;
return pos;
}
int main()
{
int x,i,m,k,t;
in>>n;
for(i=1; i<=n; i++)
{
in>>a[i];
}
in>>m;
for(i=1; i<=m; i++)
{
in>>k>>x;
if(k==0) {
t=cbin(x);
if(a[t]==x) out<<t<<'/n';
else out<<-1<<'/n';
}
else if(k==1)
{t=cbin(x);
out<<t<<'/n';
}
if(k==2)
{
t=cbin(x-1);
out<<t<<'/n';
}
}
return 0;
}