Pagini recente » Cod sursa (job #2045295) | Cod sursa (job #1781806) | Statistici Diaconu din boscheti (Boscheti) | Cod sursa (job #899897) | Cod sursa (job #1521930)
#include <stdio.h>
#include <stdlib.h>
# define N 100010
int n,i,A[101];
int cauta(int p, int u, int k)
{ int m;
while (p<=u)
{
m=(p+u)/2;
if (A[m]<k) p=m+1;
else u=m-1;
}
m=(p+u)/2;
if (A[m]==k) return m;
else return -1;
if (A[m]>k) m--;
}
int cauta1(int p, int u, int k)
{
int m,n=u;
while (p<=u)
{
m=(p+u)/2;
if (A[m]<k) p=m+1;
else u=m;
}
m=(p+u)/2;
if (A[m]<k) m++;
return m;
}
int cauta2(int p, int u, int k)
{
int m;
while (p<=u)
{
m=(p+u)/2;
if (A[m]<k) p=m+1;
else u=m;
}
m=(p+u)/2;
if (A[m]>k) m--;
return m;
}
int main()
{
int i, n, m, tip, val;
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%d", &n);
for (i=0;i<n;i++)
scanf("%d", &A[i]);
scanf("%d", &m);
while (m--)
{
scanf("%d%d", &tip,&val);
if (tip==0) printf("%d\n",cauta(1,n,val));
if (tip==1) printf("%d\n",cauta1(1,n,val));
if (tip==2) printf("%d\n",cauta2(1,n,val));
}
return 0;
}