Pagini recente » Cod sursa (job #362894) | Cod sursa (job #2333279) | Cod sursa (job #373855) | Cod sursa (job #1677291) | Cod sursa (job #2782802)
#include <bits/stdc++.h>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int a[1005],n,k,nr1,nr2;
int CautareBinara0(int x){
int st=1, dr=n, poz=-1;
while (st<=dr){
int mij=(st+dr)/2;
if (x<a[mij]) dr=mij-1;
else{
if (x==a[mij]) poz=mij;
st=mij+1;
}
}
return poz;
}
int CautareBinara1(int x){
int st=1, dr=n, poz=0;
while (st<=dr){
int mij=(st+dr)/2;
if (a[mij]<=x){poz=mij;
st=mij+1;}
else dr=mij-1;
}
return poz;
}
int CautareBinara2(int x){
int st=1, dr=n, poz=0;
while (st<=dr){
int mij=(st+dr)/2;
if (a[mij]>=x){poz=mij;
dr=mij-1;}
else st=mij+1;
}
return poz;
}
int main()
{
f>>n;
for (int i=1;i<=n;i++)
f>>a[i];
f>>k;
while (k){
f>>nr1>>nr2;
if (nr1==0) g<<CautareBinara0(nr2);
else if (nr1==1) g<<CautareBinara1(nr2);
else g<<CautareBinara2(nr2);
k--;
}
return 0;
}