Pagini recente » Cod sursa (job #2086625) | Cod sursa (job #1073506) | Cod sursa (job #1583947)
#include <iostream>
#include <fstream>
#define maxn 100000
using namespace std;
int main()
{int n,v[maxn],i,j,k,x,y,li,ls,m,OK;
fstream f("cautbin.in",ios::in);
fstream g("cautbin.out",ios::out);
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
f>>m;
for(i=1;i<=m;i++)
{f>>x>>y;
if(x==0)
{li=1;ls=n;
k=(li+ls)/2;OK=0;
while(li<=ls)
{if(v[k]<=y) li=k+1;
else
ls=k-1;
if(v[k]==y)
{cout<<ls<<" ";OK=1;}
k=(li+ls)/2;
}if(OK==0) cout<<-1<<" ";}
if(x==1)
{li=1;
ls=n;
while(li<=ls)
{ k=(li+ls)/2;
if(v[k]<=y) li=k+1;
else
ls=k-1;
cout<<ls<<" ";}
}
if(x==2)
{li=1;
ls=n;
k=(li+ls)/2;
while(li<=ls)
{ k=(li+ls)/2;
if(v[k]>=y) ls=k-1;
else
li=k+1;
cout<<li<<" ";}
}
}
}