Pagini recente » Cod sursa (job #2002585) | Cod sursa (job #1665898) | Cod sursa (job #1659643) | Cod sursa (job #310082) | Cod sursa (job #1990178)
#include <iostream>
#include <fstream>
#include <vector>
int binary_0(std::vector<int> &myV, int val, int left, int right) {
if (left > right) {
left--;
if (myV[left] != val) {
return -1;
}
return left;
}
int m = left + (right - left) / 2;
if (myV[m] > val) {
return binary_0(myV, val, left, m - 1);
}
return binary_0(myV, val, m + 1, r);
}
int binary_1(std::vector<int> &myV, int val, int left, int right) {
if (left > right) {
left--;
return left;
}
int m = left + (right - left) / 2;
if (myV[m] > val) {
return binary_1(myV, val, left, m - 1);
}
return binary_1(myV, val, m + 1, r);
}
int binary_2(std::vector<int> &myV, int val, int left, int right) {
if (left > right) {
return left;
}
int m = left + (right - left) / 2;
if (myV[m] >= val) {
return binary_2(myV, val, left, m - 1);
}
return binary_2(myV, val, m + 1, r);
}
int main() {
std::ifstream fileIn("cautbin.in");
std::ofstream fileOut("cautbin.out");
int nV;
fileIn >> nV;
std::vector<int> myV;
int aux;
for (int i(0); i < nV; i++) {
fileIn >> aux;
myV.push_back(aux);
}
int a, b, c;
fileIn >> c;
for (int i(0); i < c; i++) {
fileIn >> a >> b;
if (a == 0) {
fileOut << binary_0(myV, b, 0, nV - 1) << std::endl;
} else if (a == 1) {
fileOut << binary_0(myV, b, 0, nV - 1) << std::endl;
} else {
fileOut << binary_0(myV, b, 0, nV - 1) << std::endl;
}
}
fileIn.close();
fileOut.close();
return 0;
}