Pagini recente » Cod sursa (job #1168293) | Cod sursa (job #1462123) | Cod sursa (job #45952) | Cod sursa (job #183168) | Cod sursa (job #1293132)
#include <fstream>
#define MAXN 100000
using namespace std;
int v[MAXN];
int n, m;
int main() {
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
fin >> n;
for (int i = 0; i < n; ++i) {
fin >> v[i];
}
int m;
int op;
int x;
fin >> m;
for (int i = 0 ; i < m; ++i) {
fin >> op >> x;
int st = 0;
int dr = n-1;
int mij;
int sol = -1;
if (op == 1) {
while (st <= dr) {
mij = (st + dr) / 2;
if (x >= v[mij]) {
sol = mij;
st = mij + 1;
} else {
dr = mij - 1;
}
}
fout << (v[sol] == x ? sol + 1 : -1) << endl;
}
if (op == 1) {
while (st <= dr) {
mij = (st + dr) / 2;
if (x >= v[mij]) {
sol = mij;
st = mij + 1;
} else {
dr = mij - 1;
}
}
fout << sol + 1 << endl;
}
if (op == 2) {
while (st <= dr) {
mij = (st + dr) / 2;
if (x <= v[mij]) {
sol = mij;
dr = mij - 1;
} else {
st = mij + 1;
}
}
fout << sol + 1 << endl;
}
}
fout << endl;
}