Pagini recente » Cod sursa (job #119073) | Cod sursa (job #153625) | Cod sursa (job #1685522) | Cod sursa (job #2470747) | Cod sursa (job #2892931)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n,t,nr,v[100005],querry;
int cb1() {
int i=0, step=1;
for(;step<=n; step = (step<<1));
for(;step;step = (step>>1))
if(i+step <=n && v[i+step]<=nr)
i+=step;
if(v[i] == nr)
return i;
return -1;
}
int cb2() {
int i=0,step=1;
for(;step<=n;step = (step<<1));
for(;step;step = (step>>1))
if(i+step<=n && v[i+step]<=nr)
i+=step;
return i;
}
int cb3() {
int i=0,step=1;
for(;step<=n;step = (step<<1));
for(;step;step = (step>>1))
if(i+step<=n && v[i+step]<nr)
i+=step;
return i+1;
}
int main () {
fin>>n;
for(int i=1;i<=n;++i)
fin>>v[i];
fin>>t;++t;
while(--t) {
fin>>querry>>nr;
if(querry==0)
fout<<cb1()<<'\n';
else if (querry==1)
fout<<cb2()<<'\n';
else
fout<<cb3()<<'\n';
}
return 0;
}