Pagini recente » Cod sursa (job #1348040) | Cod sursa (job #2254789) | Cod sursa (job #2201380) | Cod sursa (job #1728114) | Cod sursa (job #444678)
Cod sursa(job #444678)
using namespace std;
#include<fstream>
const int N=100100;
int caut(int x,int n,int v[N])
{int p=1,u=n,m;
while(p!=u){m=(p+u)/2;//m=(u-p)/2+p
if(x<=v[m]) u=m;
else p=m+1;}
return p;}
int main(){ifstream in("cautbin.in");
ofstream out("cautbin.out");
int r,n,v[N],i,tip,x,m;
in>>n;
for(i=1;i<=n;++i) in>>v[i]; in>>m;
while(m--){in>>tip>>x;
r=caut(x,n,v);
if(tip==0) if(v[r]==x) out<<r<<"\n";
else out<<"-1\n";
if(tip==1) if(v[r]<=x) out<<r<<"\n";
else out<<r-1<<"\n";
if(tip==2) if(v[r]>=x) out<<r<<"\n";
else out<<r+1<<"\n";}
in.close();
out.close();
return 0;}