Pagini recente » Cod sursa (job #568341) | Cod sursa (job #1851960) | Cod sursa (job #1331404) | Cod sursa (job #635687) | Cod sursa (job #2919188)
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
const int DIM = 100001;
int n, m;
int v[DIM];
int binarySearch(int value, int type) {
bool inArray = false;
int left = 1, right = n;
while (left <= right) {
int mid = (left + right) / 2;
if (v[mid] == value)
inArray = true;
if (v[mid] <= value)
left = mid + 1;
else
right = mid - 1;
}
if (type == 0)
return (inArray ? right : -1);
if (type == 1)
return right;
left = 1, right = n;
while (left <= right) {
int mid = (left + right) / 2;
if (v[mid] >= value)
right = mid - 1;
else
left = mid + 1;
}
return left;
}
int main() {
fin >> n;
for (int i = 1; i <= n; i++)
fin >> v[i];
fin >> m;
for (int i = 1; i <= m; i++) {
int cmd, x;
fin >> cmd >> x;
fout << binarySearch(x, cmd) << '\n';
}
return 0;
}