Pagini recente » Cod sursa (job #1090577) | Cod sursa (job #918161) | Cod sursa (job #2827397) | Cod sursa (job #1330877) | Cod sursa (job #2278377)
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int cautbin(int *v, int left, int right, int op, int el) {
if (left > right) {
if (op == 0) return (v[right] == el) ? right : -1;
if (op == 1) return right;
return left;
}
int mid = left + (right - left) / 2;
if (v[mid] == el) {
if (op == 0 || op == 1) return cautbin(v, mid + 1, right, op, el);
return cautbin(v, left, mid - 1, op, el);
}
if (v[mid] < el)
return cautbin(v, mid + 1, right, op, el);
return cautbin(v, left, mid - 1, op, el);
}
int main() {
int N;
f >> N;
int A[N+1], i, M, op, x;
for (i = 1; i <= N; i++)
f >> A[i];
f >> M;
while (M--) {
f >> op >> x;
g << cautbin(A, 1, N, op, x) << '\n';
}
return 0;
}