Pagini recente » Cod sursa (job #1307536) | Cod sursa (job #2061666) | Cod sursa (job #217769) | Cod sursa (job #241452) | Cod sursa (job #1902556)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int St, p, m, n, a[100005];
int cb(int x, int q)
{
int st=St, p=0;
while(st)
{
if(p+st<=n&&a[p+st]<=x)
p+=st;
st=st>>1;
}
if(q==0)
{
if(a[p]==x)
return p;
else
return -1;
}
if(q==1)
{
return p;
}
}
int cb2(int x)
{
int st=St, p=0;
while(st)
{
if(p+st<=n&&a[p+st]<x)
p+=st;
st=st>>1;
}
return p+1;
}
int main()
{
fin>>n;
for(int i=1;i<=n;i++)
{
fin>>a[i];
}
fin>>m;
St=1;
while(St<n)
St=St<<1;
for(int i=1;i<=m;i++)
{
int q, x;
fin>>q>>x;
if(q==2)
fout<<cb2(x)<<'\n';
else
fout<<cb(x,q)<<'\n';
}
return 0;
}