Pagini recente » Cod sursa (job #2468374) | Cod sursa (job #1555004) | Cod sursa (job #671667) | Cod sursa (job #1189125) | Cod sursa (job #1830173)
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n,v[100004];
int b0(int x)
{
int inc,u,m;
inc=1;
u=n;
while(inc<=u)
{
m=(inc+u)/2;
if(v[m]==x and v[m+1]>x)
return m;
else
if(v[m]<=x)
{
inc=m+1;
}
else
{
u=m-1;
}
}
return -1;
}
int b1(int x)
{
int inc,u,m;
inc=1;
u=n;
while(inc<=u)
{
m=(inc+u)/2;
if(v[m]<=x and v[m+1]>x)
return m;
else
if(v[m]<=x)
inc=m+1;
else
u=m-1;
}
}
int b2(int x)
{
int inc,u,m;
inc=1;
u=n;
while(inc<=u)
{
m=(inc+u)/2;
if(v[m]<x and v[m+1]>=x)
return m+1;
else
if(v[m]<x)
inc=m+1;
else
u=m-1;
}
}
int main()
{
int i,tip,m,x;
f>>n;
for(i=1;i<=n;i++)
{
f>>v[i];
}
f>>m;
v[n+1]=2147483646;
for(i=1;i<=m;i++)
{
f>>tip>>x;
if(tip==0)
g<<b0(x);
else
if(tip==1)
g<<b1(x);
else
if(tip==2)
g<<b2(x);
g<<'\n';
}
return 0;
}