Pagini recente » Cod sursa (job #1842317) | Cod sursa (job #1682374) | Cod sursa (job #393249) | Cod sursa (job #2393946) | Cod sursa (job #245080)
Cod sursa(job #245080)
#include <stdio.h>
int n,i,a[100],x,m,p;
int cautbin(int m1,int m2)
{
int mij;
while(m1<m2)
{
mij=(m1+m2)/2;
if(x>a[mij])
m1=mij+1;
else
m2=mij;
}
if(x==a[m1])
return m1;
else
return -1;
}
int cautbin2(int m1,int m2)
{
int mij;
while(m1<m2)
{
mij=(m1+m2)/2;
if(x>a[mij])
m1=mij+1;
else
m2=mij;
}
if(x==a[m1])
return m1;
else
return m1-1;
}
int cautbin3(int m1,int m2)
{
int mij;
while(m1<m2)
{
mij=(m1+m2)/2;
if(x>a[mij])
m1=mij+1;
else
m2=mij;
}
if(x==a[m1])
return m1;
else
return m1;
}
int main()
{
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++) scanf("%d",&a[i]);
scanf("%d",&m);
for(i=1;i<=m;i++)
{
scanf("%d %d",&p,&x);
if(p==0)
printf("%d\n",cautbin(1,n));
if(p==1)
printf("%d\n",cautbin2(1,n));
if(p==2)
printf("%d\n",cautbin3(1,n));
}
return 0;
}