Pagini recente » Cod sursa (job #2957421) | Cod sursa (job #2167460) | Cod sursa (job #2392621) | Cod sursa (job #534886) | Cod sursa (job #2440037)
#include <iostream>
#include <fstream>
using namespace std;
int v[100001];
int cautbin0(int left, int right, int val){
int mid;
while (left <= right){
mid = (left + right) / 2;
if (v[mid] <= val){
left = mid + 1
} else {
right = mid - 1;
}
}
mid = (left + right) / 2;
if (v[mid] > val) mid++;
if (v[mid] == val){
return mid
}
return -1;
}
int cautbin1(int left, int right, int val){
int mid;
while (left < right){
mid = (left + right) / 2;
if (v[mid] <= val){
left = mid + 1
} else {
right = mid;
}
}
mid = (left + right) / 2;
if (v[mid] > val) mid--;
return mid;
}
int cautbin2(int left, int right, int val){
int mid;
while (left < right){
mid = (left + right) / 2;
if (v[mid] <= val){
left = mid + 1
} else {
right = mid;
}
}
mid = (left + right) / 2;
if (v[mid] > val) mid++;
return mid;
}
int main()
{
ifstream fin ("cautbin.in");
ofstream fout ("cautbin.out");
int nr, n, i, val, c;
fin >> nr;
for (i = 1; i <= nr; i++){
fin >> v[i];
}
fin >> n;
for (i = 1; i <= n; i++){
fin >> c >> val;
if (c == 0){
cautbin0(1, nr, val);
}
if (c == 1){
cautbin1(1, nr, val);
}
if (c == 2){
cautbin2(1, nr, val);
}
}
return 0;
}