Pagini recente » Cod sursa (job #2870661) | Cod sursa (job #2838472) | Cod sursa (job #356862) | Cod sursa (job #119556) | Cod sursa (job #1968325)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("cautbin.in"); ofstream g("cautbin.out");
int n, a[100005], m, c, x;
int cautbin(int x) {
int st = 1, dr = n, mij, last = -1;
while(st <= dr) {
mij = (st + dr) / 2;
if (x == a[mij]) {
if (c == 0 || c == 1) {
last = mij;
st = mij + 1;
}
if (c == 2) {
last = mij;
dr = mij - 1;
}
}
else {
if(x < a[mij]) {
if (c == 2) {
last = mij;
}
dr = mij - 1;
}
if(x > a[mij]) {
if (c == 1) {
last = mij;
}
st = mij + 1;
}
}
}
return last;
}
int main(){
int i;
f>>n;
for(i = 1; i <= n; ++i) {
f>>a[i];
}
f>>m;
for(i = 1; i <= m; ++i) {
f>>c>>x;
g<<cautbin(x)<<'\n';
}
return 0;
}