Pagini recente » Cod sursa (job #705190) | Cod sursa (job #2335756) | Cod sursa (job #2301952) | Cod sursa (job #2892659) | Cod sursa (job #1313474)
#include <fstream>
using namespace std;
int v[100101];
int main()
{
int n,m,tip,x,d,mij,s;
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%d", &n);
for(int i=1;i<=n;i++) scanf("%d", &v[i]);
scanf("%d", &m);
for(int i=1;i<=m;i++)
{
scanf("%d%d", &tip, &x);
if(tip==0)
{ int s=1; d=n;
while(s<=d )
{mij=(s+d)/2;
if(v[mij]<=x) s=mij+1;
else d=mij-1;
}
mij=(s+d)/2;
if(v[mij]>x) mij--;
if(v[mij]==x) printf("%d\n",mij);
else printf("%d\n",-1);
}
if(tip==1)
{ int s=1; d=n;
while (s<d)
{mij=(s+d)/2;
if (v[mij]<=x) s=mij+1;
else d=m;
}
mij=(s+d)/ 2;
if(v[mij]>x) -- mij;
printf("%d\n",mij);
}
if(tip==2)
{ s=1,d=n;
while (s<d)
{mij =(s + d)/2;
if (v[mij]<x) s=mij+1;
else d=mij;
}
mij=(s+d)/2;
if (v[mij]<x) mij++;
printf("%d\n",mij);
}
}
return 0;
}