Pagini recente » Cod sursa (job #1778909) | Cod sursa (job #783064) | Cod sursa (job #2854082) | Cod sursa (job #1065084) | Cod sursa (job #2740690)
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n;
int a[100000];
int cautBin(int elem, int sir[], int cer){
int a0,a1,a2;
int left = 0;
int right = n-1;
while(left<right){
int mid = (left+right)/2;
if(cer==2){
if(elem<=sir[mid]){
right = mid;
}
else{
left = mid+1;
}
}
else{
if(elem>=sir[mid]){
left = mid;
}
else{
right = mid-1;
}
}
if(right-left<=1)
{
if(cer==1 || cer==0)
return (sir[right]<=elem ? right : left);
else if(cer==2)
return (sir[left]>=elem ? left : right);
}
}
}
int main(){
fin>>n;
for(int i=0;i<n;++i)
fin>>a[i];
//citire vector
int k;
fin>>k;
while(k--){
int cer, val;
fin>>cer>>val;
fout<<cautBin(val, a, cer)+1<<'\n';
}
return 0;
}