Pagini recente » Cod sursa (job #247692) | Cod sursa (job #2214837) | Cod sursa (job #329817) | Cod sursa (job #2914300) | Cod sursa (job #1245058)
#include <fstream>
#include <cstdio>
using namespace std;
long long n,i,a,b,m,v[10000],p,u,M;
int main()
{
freopen("cautbin.in","r",stdin);
ofstream g ("cautbin.out");
scanf("%lld",&n);
for(i=1; i<=n; i++)
scanf("%lld",&v[i]);
scanf("%lld",&M);
for(i=1; i<=M; i++)
{
scanf("%lld%lld",&a,&b);
p=1;
u=n;
if(a==0)
{
m=(p+u)/2;
while(p<u)
{
if(v[m]<=b)p=m+1;
else if(v[m]>b)u=m-1;
m=(p+u)/2;
}
if(v[m]>b)m--;
if(v[m]==b)g<<m<<'\n';
else g<<-1<<'\n';
}
else
if(a==1)
{
m=(p+u)/2;
while(p<u)
{
if(v[m]<=b)p=m+1;
else if(v[m]>b)u=m-1;
m=(p+u)/2;
}
if(v[m]>b)m--;
g<<m<<'\n';
}
else
{
m=(p+u)/2;
while(p<u)
{
if(v[m]<b)p=m+1;
else if(v[m]>=b)u=m-1;
m=(p+u)/2;
}
if(v[m]<b)m++;
g<<m<<'\n';
}
}
return 0;
}