Pagini recente » Cod sursa (job #2904948) | Cod sursa (job #2574229) | Cod sursa (job #763458) | Cod sursa (job #1571947) | Cod sursa (job #3204686)
#include <iostream>
using namespace std;
int v[100005], n, m;
int cautbin1(int x) {
int ras, mij, st, dr;
ras = -1;
st = 1;
dr = n;
while (st < dr) {
mij = (st + dr) / 2;
if (v[mij] <= x) {
ras = mij;
st = mij + 1;
} else
dr = mij - 1;
}
return ras;
}
int cautbin2(int x) {
int ras, mij, st, dr;
st = 1;
dr = n;
ras = -1;
while (st <= dr) {
mij = (st + dr) / 2;
if (v[mij] >= x) {
ras = mij;
dr = mij - 1;
} else
st = mij + 1;
}
return ras;
}
int main() {
cin >> n;
for (int i = 1; i <= n; i++)
cin >> v[i];
cin >> m;
for (int i = 1; i <= m; i++) {
int p, x;
cin >> p >> x;
if (p == 0)
cout << cautbin1(x) << '\n';
else if (p == 1)
cout << cautbin1(x) << '\n';
else
cout << cautbin2(x) << '\n';
}
return 0;
}