Pagini recente » Cod sursa (job #3216935) | Borderou de evaluare (job #996886) | Cod sursa (job #807196) | Cod sursa (job #2825147) | Cod sursa (job #2610117)
#include <fstream>
#include <vector>
using namespace std;
vector<int> v;
int caut_bin(int x, int type){
int st = 0, dr = v.size()-1, m;
int pos = -2;
while(st<=dr){
m = (st+dr)/2;
if(type==0){
if(v[m]==x) pos = m;
if(v[m]>x) dr = m-1;
else st = m+1;
continue;
}
if(type==1){
if(v[m]<=x) pos = m;
if(v[m]>x) dr = m-1;
else st = m+1;
continue;
}
if(type==2){
if(v[m]>=x) pos = m;
if(v[m]>=x) dr = m-1;
else st = m+1;
continue;
}
}
return pos;
}
int main() {
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n, x, y, i;
fin>>n;
for(i=0;i<n;i++){
fin>>x;
v.push_back(x);
}
fin>>n;
for(i=0;i<n;i++){
fin>>x>>y;
fout<<caut_bin(y, x)+1<<'\n';
}
return 0;
}