Pagini recente » Cod sursa (job #2380070) | Cod sursa (job #3276567) | Cod sursa (job #2197833) | Cod sursa (job #3193269) | Cod sursa (job #2334588)
#include <fstream>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int v[100000];
int cb(int nr, int marime)
{
int pos=0;
for(int msk=1<<20; msk>0; msk /=2)
if(pos+msk<=marime && v[pos+msk]<=nr)
pos += msk;
if(v[pos]==nr)
return pos;
}
int main()
{
int n, m, x, a, cer;
in >> n;
int i;
for(i=1; i<=n; i++)
in >> v[i];
in >> cer;
for(i=1; i<=cer; i++)
{
in >> m >> x;
if(m==0)
{
a = cb(x, n);
if(v[a]==x)
out << a << '\n';
else
out << -1 << '\n';
}
else if(m==1)
{
a=cb(x,n);
out << a << '\n';
}
else
{
a = cb(x-1,n);
out << a+1 << '\n';
}
}
return 0;
}