Pagini recente » Cod sursa (job #1835132) | Cod sursa (job #904909) | Cod sursa (job #552627) | Cod sursa (job #2545083) | Cod sursa (job #284035)
Cod sursa(job #284035)
#include <stdio.h>
int v[100001];
int i,n,m,x,sol,mid,tip;
int cbin (int st, int dr, int x)
{
sol=0;
while (st<=dr){
mid=st+(dr-st)/2;
if (v[mid]<=x){
sol=mid;
st=mid+1;
}
else dr=mid-1;
}
}
int main ()
{
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);
cbin (1,n,x);
if (tip==0) {
if (v[sol]==x) printf ("%d\n",sol);
else printf ("-1\n");
}
else if (tip==1) printf ("%d\n",sol);
else {
if (v[sol]==x) printf ("%d\n",sol);
else printf ("%d\n",sol+1);
}
}
return 0;
}