Pagini recente » Cod sursa (job #793951) | Cod sursa (job #1050335) | Cod sursa (job #2672396) | Cod sursa (job #1740698) | Cod sursa (job #2088310)
#include <fstream>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int v[100002];
int cautbin(int x, int n){
int pas, sol=0;
pas=1<<17;
while(pas!=0){
if(pas+sol<=n && v[pas+sol]<=x){
sol+=pas;
}
pas/=2;
}
return sol;
}
int main()
{
int n, m, z, n2;
in>>n;
for(int i=1; i<=n; i++){
in>>v[i];
}
in>>n2;
for(int i=1; i<=n2; i++){
in>>m>>z;
int aux;
if(m==0){
aux=cautbin(z, n);
if(v[aux]==z){
out<<aux<<'\n';
}
else
out<<-1<<'\n';
}
if(m==1){
out<<cautbin(z, n)<<'\n';
}
if(m==2){
aux=cautbin(z, n);
if(v[aux]==z){
while(v[aux]==z){
aux--;
}
out<<aux+1<<'\n';
}
else
out<<aux+1<<'\n';
}
}
return 0;
}