Pagini recente » Cod sursa (job #109431) | Cod sursa (job #3284677) | Cod sursa (job #344977) | Cod sursa (job #1428714) | Cod sursa (job #1243612)
#include <fstream>
#include <cstdio>
using namespace std;
long long n,i,me,v[1000],a,b,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",&me);
for(i=1; i<=me; i++)
{
scanf("%lld%lld",&a,&b);
if(a==0)
{
p=1;
u=n;
while (p <= u)
{
m = (p + u) / 2;
if (v[m] <= b)
p = m + 1;
else
u = m - 1;
}
m = (p + u) / 2;
if (v[m] > b) m --;
if (v[m] == b)g<<m<<'\n';
else g<<-1;
}
else
if(a==1)
{
p=1;
u=n;
while (p < u)
{
m = (p + u) / 2;
if (v[m] <= b)
p = m + 1;
else
u = m ;
}
m = (p + u) / 2;
if (v[m] > b) m --;
g<<m<<'\n';}
else
{
p=1;
u=n;
while (p < u)
{
m = (p + u) / 2;
if (v[m] < b)
p = m + 1;
else
u = m ;
}
m = (p + u) / 2;
if (v[m] > b) m --;
g<<m<<'\n';}
}
return 0;
}