Pagini recente » Cod sursa (job #405188) | Cod sursa (job #1334617) | Cod sursa (job #333082) | Cod sursa (job #989449) | Cod sursa (job #306347)
Cod sursa(job #306347)
#include<stdio.h>
#include<stdlib.h>
int main(void)
{int *v,n,m,q,x,st,dr,mid,poz;
freopen("cautbin.in","rt",stdin);
freopen("cautbin.out","wt",stdout);
scanf("%d",&n); v=(int*)calloc(n+1,sizeof(n));
for(register int i=1;i<=n;++i) scanf("%d",&v[i]);
scanf("%d",&m);
while(m--)
{scanf("%d%d",&q,&x);
poz=-1; dr=n; st=1;
while(dr>=st)
{
mid=st+(dr-st)/2;
if(q==0)
{if(x==v[mid]) poz=mid; //fprintf(stderr,"!\n"); fflush(stderr);
if(x<v[mid]) dr=mid-1;
else st=mid+1; continue;
}
if(q==1)
{if(v[mid]<=x) poz=mid,st=mid+1;
else dr=mid-1; continue ;
}
if(v[mid]>=x) poz=mid,dr=mid-1;
else st=mid+1; continue ;
}
printf("%d\n",poz);
} free(v);
//system("PAUSE>NULL");
return 0;
}