Pagini recente » Cod sursa (job #46466) | Cod sursa (job #147874) | Cod sursa (job #774709) | Cod sursa (job #544737) | Cod sursa (job #209078)
Cod sursa(job #209078)
#include <cstdio>
#define N 100005
int n,tip,x,v[N];
int solve(){
int p=1,u=n,m;
while (p!=u){
m=(p+u)/2;
if (x<=v[m])
u=m;
else
p=m+1;
}
if (tip==0){
if (x==v[p])
return p;
return -1;
}
if (tip==1){
if (x<v[p])
--p;
return p;
}
if (x>v[p])
++p;
return p;
}
void write(int a){
printf("%d\n",a);
}
void read(){
int i,m;
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;++i)
scanf("%d",&v[i]);
scanf("%d",&m);
for (i=1;i<=m;++i){
scanf("%d%d",&tip,&x);
write(solve());
}
}
int main(){
read();
return 0;
}