Pagini recente » Cod sursa (job #3544) | Cod sursa (job #2046353) | Cod sursa (job #2019374) | Cod sursa (job #2018333) | Cod sursa (job #2423038)
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
const int N = 100010;
int n,q,c,v,i,x[N],caut0(),caut2(),lo,hi,mi;
int main()
{
f>>n;
for(i=1; i<=n; i++)
f>>x[i];
f>>q;
for(; q; q--)
{
f>>c>>v;
if(c==0)
{
i=caut0();
if(x[i]==v)
g<<i<<'\n';
else
g<<"-1\n";
}
else if(c==1)
g<<caut0()<<'\n';
else
g<<caut2()<<'\n';
}
return 0;
}
int caut0()
{
lo=1;
hi=n+1;
while(hi-lo>1)
{
mi=(lo+hi)/2;
if(x[mi]<=v)
lo=mi;
else
hi=mi;
}
return lo;
}
int caut2()
{
lo=1;
hi=n+1;
while(hi-lo>1)
{
mi=(lo+hi)/2;
if(x[mi]<v)
lo=mi;
else
hi=mi;
}
return hi;
}