Pagini recente » Cod sursa (job #1684268) | Cod sursa (job #1513468) | Cod sursa (job #2137994) | Cod sursa (job #707548) | Cod sursa (job #2204045)
#include <fstream>
using namespace std;
int i,j,m,n,a,b,s,t[100005],xs,ys,xb,yb,e,l,x,d,x1;
int c;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
void caut(int x,int y)
{
if (x>=y) {s=x; return;}
int mid=(x+y)/2;
if (t[mid]>x1) caut(x,mid);
else caut(mid+1,y);
return;
}
int main()
{
fin>>n;
for (i=1;i<=n;i++)
fin>>t[i];
fin>>m;
for (i=1;i<=m;i++)
{
fin>>c>>x1;
s=1; d=n;
if (c==2) x1--;
caut(s,d);
if (c==0) if (t[s-1]==x1) fout<<s-1<<"\n"; else fout<<-1<<"\n";
if (c==1) if (t[s]>x1 || s>n) fout<<s-1<<"\n"; else fout<<s<<"\n";
if (c==2) fout<<s<<"\n";
}
return 0;
}