Pagini recente » Cod sursa (job #2602344) | Cod sursa (job #2089271) | Cod sursa (job #726300) | Cod sursa (job #2180234) | Cod sursa (job #2334573)
#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;
if(a[pos]==x) 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=0; 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;
}