Pagini recente » Cod sursa (job #2460971) | Cod sursa (job #265800) | Cod sursa (job #85181) | Cod sursa (job #2222542) | Cod sursa (job #2199873)
#include <fstream>
using namespace std;
int n,i,q,tip,a[100001],nr;
int b0(int x)
{
int st=0, dr=n;
int mij;
while(st<dr)
{
mij=(st+dr+1)/2;
if(x<a[mij])
dr=mij-1;
else
st=mij;
}
if(a[st]==x)
return st;
return -1;
}
int b1(int x)
{
int st=0, dr=n;
int mij;
while(st<dr)
{
mij=(st+dr+1)/2;
if(x<a[mij])
dr=mij-1;
else
st=mij;
}
return st;
}
int b2(int x)
{
int st=0, dr=n;
int mij;
while(st<dr)
{
mij=(st+dr)/2;
if(x>a[mij])
st=mij+1;
else
dr=mij;
}
return st;
}
int main()
{
ifstream f("cautbin.in");
ofstream g("cautbin.out");
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
f>>q;
for(i=1;i<=q;i++)
{
f>>tip>>nr;
if(tip==0)
g<<b0(nr)<<"\n";
if(tip==1)
g<<b1(nr)<<"\n";
if(tip==2)
g<<b2(nr)<<"\n";
}
return 0;
}