Pagini recente » Cod sursa (job #2216666) | Cod sursa (job #1633706) | Cod sursa (job #3272280) | Cod sursa (job #1042977) | Cod sursa (job #2529740)
#include <fstream>
using namespace std;
int cautbin0(int *v, int n) {
int stanga = 0, dreapta = sizeof(v), mid;
while(stanga < dreapta) {
mid = (stanga + dreapta) / 2;
if(v[mid] == n && v[mid+1] != n)
return mid;
else if(v[mid] > n)
dreapta = mid;
else
stanga = mid;
}
return -1;
}
int cautbin1(int *v, int n) {
int stanga = 0, dreapta = sizeof(v), mid;
while(stanga < dreapta) {
mid = (stanga + dreapta) / 2;
if(v[mid] == n && v[mid] <= n)
return mid;
else if(v[mid] > n)
dreapta = mid;
else
stanga = mid;
}
return -1;
}
int cautbin2(int *v, int n) {
int stanga = 0, dreapta = sizeof(v), mid;
while(stanga < dreapta) {
mid = (stanga + dreapta) / 2;
if(v[mid] == n && v[mid] >= n)
return mid;
else if(v[mid] > n)
dreapta = mid;
else
stanga = mid;
}
return -1;
}
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int main() {
int n;
fin >> n;
int v[n], q, nr;
for(int i = 0; i < n; i++)
fin >> v[i];
fin >> q >> nr;
if(q == 0)
fout << cautbin0(v, nr) + 1;
if(q == 1)
fout << cautbin1(v, nr) + 1;
if(q == 2)
fout << cautbin2(v, nr) + 1;
fout << '\n';
}