Pagini recente » Cod sursa (job #1783268) | Cod sursa (job #1857420) | Cod sursa (job #1056493) | Cod sursa (job #1825820) | Cod sursa (job #2495801)
#include <bits/stdc++.h>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
const int NMAX=100000;
int v[NMAX+5];
int n,val,m;
int main()
{
in>>n;
for(int i=1;i<=n;i++)
in>>v[i];
int logn,tip,a;
for(logn=1;logn<=n;logn<<=1);
in>>m;
for(int i=1;i<=m;i++){
int poz,log=logn;
in>>tip>>a;
if(tip<2){
for(poz=0;log;log>>=1)
if(log+poz<n && v[poz+log]<=a)
poz+=log;
if(!tip && v[poz]!=a)
out<<-1<<'\n';
else
out<<poz<<'\n';
continue;
}
for(log=logn,poz=n;log;log>>=1)
if(poz-log>0 && v[poz-log]>=a)
poz-=log;
out<<poz<<'\n';
}
return 0;
}