Pagini recente » Cod sursa (job #2610136) | Cod sursa (job #2645970) | Cod sursa (job #82139) | Cod sursa (job #2080722) | Cod sursa (job #1769647)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f1("cautbin.in");
ofstream f2("cautbin.out");
int l,r,sol=-1,n,y[100005],x,i,m,p;
int main()
{
f1>>n;
for(i=1;i<=n;++i){
f1>>y[i];
}
f1>>m;
for(i=1;i<=m;++i){
f1>>p>>x;
l=1; r=n;sol=-1;
if(p==0){
while(l<=r){
int mid;
mid=(l+r)/2;
if(y[mid]==x){
sol=mid;
l=mid+1;
}
else {
if(y[mid]<x){l=mid+1;}
else{r=mid-1;}
}
}
}
if(p==1){
while(l<=r){
int mid;
mid=(l+r)/2;
if(y[mid]<=x){
sol=mid;
l=mid+1;
}
else{r=mid-1;}
}
}
if(p==2){
while(l<=r){
int mid;
mid=(l+r)/2;
if(y[mid]>=x){
sol=mid;
r=mid-1;
}
else{l=mid+1;}
}
}
f2<<sol<<'\n';
}
return 0;
}