Pagini recente » Cod sursa (job #2563697) | Cod sursa (job #674060) | Cod sursa (job #2647902) | Cod sursa (job #2699061) | Cod sursa (job #2640486)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int v[100005];
int n, m, closes, q, x, res, i;
int cautare_binara(int l, int r, int x){
if(l < r){
int mid = l + (r - l) / 2;
if(v[mid] == x)
return mid;
else if(v[mid] > x)
cautare_binara(l, mid, x);
else
cautare_binara(mid, r, x);
}
return r;
}
int main(){
//ifstream fin("date.in");
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
fin >> n;
for(int i = 0 ; i < n; ++i){
fin >> v[i];
}
fin >> m;
while(m--){
fin >> q >> x;
res = cautare_binara(0, n-1, x);
if(q == 0){
if(v[res] == x){
for(i = res; v[i] == x; ++i);
fout << i << '\n';
}
else
fout << -1 << "\n";
}
else if(q == 1){
if(v[res] == x){
for(int i = res; v[i] == x; ++i);
fout << i << '\n';
}
else
fout << res << "\n";
}
else{
if(v[res] == x){
for(i = res; v[i] == x; --i);
fout << i + 1<< '\n';
}
else
fout << res << "\n";
}
}
return 0;
}